blob: 40b1e05b0772078795fc98ad1a153e20ea215a2c [file] [log] [blame]
{%- from "ironic/map.jinja" import conductor with context %}
{%- if conductor.enabled %}
include:
- ironic._common
ironic_conductor_packages:
pkg.installed:
- names: {{ conductor.pkgs }}
- install_recommends: False
- require_in:
- sls: ironic._common
{%- if conductor.get('console', {}).get('enabled') %}
ironic_console_packages:
pkg.installed:
- names: {{ conductor.console_pkgs }}
- install_recommends: False
- require_in:
- {{ conductor.service }}
{%- endif %}
{{ conductor.service }}:
service.running:
- enable: true
- full_restart: true
- watch:
- file: /etc/ironic/ironic.conf
- require:
- pkg: ironic_conductor_packages
- sls: ironic._common
ironic_dirs:
file.directory:
- names:
- {{ conductor.tftp_root }}
- {{ conductor.http_root }}
makedirs: True
user: 'ironic'
group: 'ironic'
- require_in:
- pkg: ironic_conductor_packages
ironic_copy_pxelinux.0:
file.managed:
- name: {{ conductor.tftp_root }}/pxelinux.0
- source: {{ conductor.pxelinux_path }}/pxelinux.0
- user: 'ironic'
- group: 'ironic'
- require:
- file: ironic_dirs
- pkg: ironic_conductor_packages
{%- if conductor.uefi.enabled %}
ironic_conductor_uefi_packages:
pkg.installed:
- names: {{ conductor.uefi_pkgs }}
- install_recommends: False
- require_in:
- sls: ironic._common
{% for file, args in conductor.uefi_files.items() %}
ironic_copy_uefi_{{ file }}:
file.managed:
- name: {{ conductor.tftp_root }}/{{ args['dst'] }}
- source: {{ args['src'] }}
- user: 'ironic'
- group: 'ironic'
- require:
- file: ironic_dirs
- file: ironic_uefi_grub_dir
- pkg: ironic_conductor_packages
- pkg: ironic_conductor_uefi_packages
{%- endfor %}
ironic_uefi_grub_dir:
file.directory:
- name: {{ conductor.tftp_root }}/{{ conductor.uefi.grub_dir_name }}
makedirs: True
user: 'ironic'
group: 'ironic'
- require_in:
- pkg: ironic_conductor_packages
- pkg: ironic_conductor_uefi_packages
ironic_uefi_grub_cfg:
file.managed:
- name: {{ conductor.tftp_root }}/{{ conductor.uefi.grub_dir_name }}/grub.cfg
- contents: 'GRUB_DIR={{ conductor.tftp_root }}/{{ conductor.uefi.grub_dir_name }}'
- user: 'ironic'
- group: 'ironic'
- mode: 644
- require:
- file: ironic_dirs
- file: ironic_uefi_grub_dir
- pkg: ironic_conductor_packages
- pkg: ironic_conductor_uefi_packages
{%- endif %}
{% for file in conductor.syslinux_files %}
ironic_copy_{{ file }}:
file.managed:
- name: {{ conductor.tftp_root }}/{{ file }}
- source: {{ conductor.syslinux_path }}/{{ file }}
- user: 'ironic'
- group: 'ironic'
- require:
- file: ironic_dirs
- pkg: ironic_conductor_packages
{%- endfor %}
{% for file in conductor.ipxe_rom_files %}
ironic_copy_{{ file }}:
file.managed:
- name: {{ conductor.tftp_root }}/{{ file }}
- source: {{ conductor.ipxe_rom_path }}/{{ file }}
- user: 'ironic'
- group: 'ironic'
- require:
- file: ironic_dirs
- pkg: ironic_conductor_packages
{%- endfor %}
ironic_tftp_map_file:
file.managed:
- name: {{ conductor.tftp_root }}/map-file
- contents: |
r ^[^/] /\0
r ^({{ conductor.tftp_root }}) /\2
- user: 'ironic'
- group: 'ironic'
- require:
- file: ironic_dirs
- pkg: ironic_conductor_packages
{%- if conductor.http_images is defined %}
{%- for image in conductor.http_images %}
image_{{ image.name }}:
file.managed:
- name: {{ conductor.http_root }}/{{ image.name }}
- source: {{ image.source }}
{%- if image.md5summ is defined %}
- source_hash: md5={{ image.md5summ }}
{%- else %}
- source_hash: {{ image.hash_file }}
{%- endif %}
- user: 'ironic'
- group: 'ironic'
{%- endfor %}
{%- endif %}
{# we have disabled iscsi by default according to CIS requirement, enable it explicitly #}
ironic_iscsi_packages:
pkg.installed:
- names:
- open-iscsi
- require_in:
- {{ conductor.service }}
ironic_scsi_service:
service.running:
- names:
- iscsid
- enable: true
{%- if grains.get('noservices') %}
- onlyif: /bin/false
{%- endif %}
{%- endif %}