| {%- 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 %} |