commit 9e3c685e06e02706db74069686f49b3b94249b46 Author: Dmitry Tantsur Date: Tue Oct 13 14:40:04 2020 +0200 Support redfish-virtual-media with legacy boot Depends-On: https://review.opendev.org/757859 Change-Id: I3f8e34628feb21309b6a5be7224f07e0e87a9417 diff --git a/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_Debian_family.yml b/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_Debian_family.yml index d48cf19..be1e744 100644 --- a/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_Debian_family.yml +++ b/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_Debian_family.yml @@ -34,6 +34,7 @@ required_packages: - gcc - dnsmasq - apache2-utils + - isolinux # NOTE(TheJulia): The above entry for dnsmasq must be the last entry in the # package list as the installation causes name resolution changes that can # temporarily block packages following it while the system is being diff --git a/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_Fedora.yml b/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_Fedora.yml index 578227c..3aace71 100644 --- a/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_Fedora.yml +++ b/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_Fedora.yml @@ -31,6 +31,7 @@ required_packages: - qemu-img - qemu-kvm - socat + - syslinux-nonlinux - tftp-server - wget - xinetd diff --git a/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_RedHat_family.yml b/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_RedHat_family.yml index ca2fa0d..2a1d65f 100644 --- a/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_RedHat_family.yml +++ b/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_RedHat_family.yml @@ -37,6 +37,7 @@ required_packages: - firewalld - python3-firewall - httpd-tools + - syslinux-nonlinux iscsi_required_packages: - iscsi-initiator-utils - gdisk diff --git a/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_Suse_family.yml b/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_Suse_family.yml index 06b9a43..2c601ba 100644 --- a/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_Suse_family.yml +++ b/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_Suse_family.yml @@ -39,6 +39,7 @@ required_packages: - gcc - python-PyMySQL - apache2-utils + - syslinux iscsi_required_packages: - open-iscsi - gptfdisk diff --git a/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_Ubuntu.yml b/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_Ubuntu.yml index 896ffc3..31e8212 100644 --- a/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_Ubuntu.yml +++ b/playbooks/roles/bifrost-ironic-install/defaults/required_defaults_Ubuntu.yml @@ -28,6 +28,7 @@ required_packages: - curl - dnsmasq - apache2-utils + - isolinux # NOTE(TheJulia): The above entry for dnsmasq must be the last entry in the # package list as the installation causes name resolution changes that can # temporarily block packages following it while the system is being diff --git a/playbooks/roles/bifrost-ironic-install/tasks/hw_types.yml b/playbooks/roles/bifrost-ironic-install/tasks/hw_types.yml index 6b42958..8dbca36 100644 --- a/playbooks/roles/bifrost-ironic-install/tasks/hw_types.yml +++ b/playbooks/roles/bifrost-ironic-install/tasks/hw_types.yml @@ -31,6 +31,7 @@ enabled_boot_interfaces: >- ipxe,pxe {%- if "ilo" in enabled_hardware_types -%},ilo-virtual-media{%- endif -%} + {%- if "redfish" in enabled_hardware_types -%},redfish-virtual-media{%- endif -%} {%- if "fake-hardware" in enabled_hardware_types -%},fake{%- endif -%} when: not enabled_boot_interfaces diff --git a/playbooks/roles/bifrost-ironic-install/tasks/ironic_config.yml b/playbooks/roles/bifrost-ironic-install/tasks/ironic_config.yml index cace7b3..44e86d8 100644 --- a/playbooks/roles/bifrost-ironic-install/tasks/ironic_config.yml +++ b/playbooks/roles/bifrost-ironic-install/tasks/ironic_config.yml @@ -30,6 +30,12 @@ when: not hostvars[inventory_hostname][provisioning_itf_name].get('ipv4', {}).get('address') - name: "Configure hardware interfaces" import_tasks: hw_types.yml +- name: "Locate ISOLINUX binary" + set_fact: + isolinux_bin_path: "{{ item }}" + with_first_found: + - /usr/lib/ISOLINUX/isolinux.bin + - /usr/share/syslinux/isolinux.bin - name: "Create ironic config" template: src="ironic.conf.j2" diff --git a/playbooks/roles/bifrost-ironic-install/templates/ironic.conf.j2 b/playbooks/roles/bifrost-ironic-install/templates/ironic.conf.j2 index 6feb822..5992a7e 100644 --- a/playbooks/roles/bifrost-ironic-install/templates/ironic.conf.j2 +++ b/playbooks/roles/bifrost-ironic-install/templates/ironic.conf.j2 @@ -36,6 +36,8 @@ http_basic_auth_user_file = /etc/ironic/htpasswd log_dir = {{ ironic_log_dir }} {% endif %} +isolinux_bin = {{ isolinux_bin_path }} + {% if enable_tls | bool %} [api] enable_ssl_api = True @@ -115,6 +117,14 @@ allow_credentials = {{ enable_cors_credential_support | default('true') }} [ilo] use_web_server_for_images = true +[redfish] +use_swift = False +{% if testing | bool %} +kernel_append_params = console=ttyS0 ipa-insecure=1 {{ extra_kernel_options | default('') }} +{% else %} +kernel_append_params = systemd.journald.forward_to_console=yes ipa-insecure=1 {{ extra_kernel_options | default('') }} +{% endif %} + {% if enable_inspector | bool == true %} [inspector] power_off = {{ power_off_after_inspection }} diff --git a/releasenotes/notes/redfish-virtual-media-969d8747ab97165d.yaml b/releasenotes/notes/redfish-virtual-media-969d8747ab97165d.yaml new file mode 100644 index 0000000..26592ae --- /dev/null +++ b/releasenotes/notes/redfish-virtual-media-969d8747ab97165d.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + Enables support for ``redfish-virtual-media`` in legacy (BIOS) boot mode.