diff --git a/defaults/main.yml b/defaults/main.yml index 95e25753..bde5e6f4 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -291,6 +291,7 @@ nova_console_type: "{{ (ansible_facts['architecture'] == 'aarch64') | ternary('s ## Nova ironic console # Set the console type. Presently the only options are ["serialconsole", "disabled"]. nova_ironic_console_type: "disabled" +nova_ironic_used: "{{ _nova_ironic_used }}" # Nova console ssl info, presently only used by novnc console type nova_console_ssl_dir: "/etc/nova/ssl" diff --git a/tasks/nova_db_post_setup.yml b/tasks/nova_db_post_setup.yml index 406b50da..c50e2545 100644 --- a/tasks/nova_db_post_setup.yml +++ b/tasks/nova_db_post_setup.yml @@ -20,7 +20,7 @@ # This needs to be done after Compute hosts are added. - name: Perform a cell_v2 discover - command: "{{ _db_nova_bin }}/nova-manage cell_v2 discover_hosts{{ (debug | bool) | ternary(' --verbose', '') }}{{ (nova_virt_type == 'ironic') | ternary(' --by-service', '') }}" + command: "{{ _db_nova_bin }}/nova-manage cell_v2 discover_hosts{{ (debug | bool) | ternary(' --verbose', '') }}{{ (nova_ironic_used | bool) | ternary(' --by-service', '') }}" become: yes become_user: "{{ _db_nova_system_user_name }}" changed_when: false diff --git a/vars/main.yml b/vars/main.yml index 7ec1ded0..e2110bee 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -15,6 +15,15 @@ _nova_is_first_play_host: "{{ (nova_services['nova-conductor']['group'] in group_names and inventory_hostname == (groups[nova_services['nova-conductor']['group']] | intersect(ansible_play_hosts)) | first) | bool }}" +_nova_ironic_used: |- + {% set _virt_types = [] %} + {% for hv in groups[nova_services['nova-compute']['group']] %} + {% if 'nova_virt_type' in hostvars[hv] %} + {% set _ = _virt_types.append(hostvars[hv]['nova_virt_type']) %} + {% endif %} + {% endfor %} + {{ ('ironic' in _virt_types | unique) }} + nova_venv_packages: |- {%- set pkg_list = nova_pip_packages | union(nova_user_pip_packages) %} {%- if nova_oslomsg_amqp1_enabled | bool %}