Execution
Date 15 Dec 2025 10:19:13 +0000
Duration 00:23:12.82
Controller aio1.openstack.local
User root
Versions
Ansible 2.18.6
ara 1.7.4 / 1.7.4
Python 3.12.3
Summary
9 Hosts
618 Tasks
960 Results
108 Plays
456 Files
0 Records

File: /home/zuul/src/opendev.org/openstack/openstack-ansible-os_ironic/vars/main.yml

---
# Copyright 2017, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

_ironic_api_is_first_play_host: >-
  {{
    (ironic_services['ironic-api']['group'] in group_names and
      inventory_hostname == (groups[ironic_services['ironic-api']['group']] | select('in', ansible_play_hosts)) | first) | bool
  }}
_ironic_inspector_is_first_play_host: >-
  {{
    (ironic_services['ironic-inspector']['group'] in group_names and
      inventory_hostname == (groups[ironic_services['ironic-inspector']['group']] | select('in', ansible_play_hosts)) | first) | bool
  }}
_ironic_oslomsg_rpc_vhost_conf: >-
  {{
    (ironic_oslomsg_rpc_vhost is string) | ternary(
      ironic_oslomsg_rpc_vhost, ironic_oslomsg_rpc_vhost | selectattr('state', 'eq', 'present') | map(attribute='name') | first)
  }}
_ironic_oslomsg_notify_vhost_conf: >-
  {{
    (ironic_oslomsg_notify_vhost is string) | ternary(
      ironic_oslomsg_notify_vhost, ironic_oslomsg_notify_vhost | selectattr('state', 'eq', 'present') | map(attribute='name') | first)
  }}
_ironic_inspector_oslomsg_rpc_vhost_conf: >-
  {{
    (ironic_inspector_oslomsg_rpc_vhost is string) | ternary(
      ironic_inspector_oslomsg_rpc_vhost, ironic_inspector_oslomsg_rpc_vhost | selectattr('state', 'eq', 'present') | map(attribute='name') | first)
  }}
# This special list brings together all of the package installations into one
# task to save time.

ironic_driver_types:
  no_driver:
    inspect: no-inspect
    console: no-console
    raid: no-raid
  agent_ilo:
    hardware_type: ilo
    boot: ilo-virtual-media
    deploy: direct
    inspect: ilo
    management: ilo
    power: ilo
    console: ilo
    raid: agent
  agent_ipmitool:
    hardware_type: ipmi
    boot: pxe
    deploy: direct
    inspect: inspector
    management: ipmitool
    power: ipmitool
    console: no-console
    raid: agent
  agent_ipmitool_socat:
    hardware_type: ipmi
    boot: pxe
    deploy: direct
    inspect: inspector
    management: ipmitool
    power: ipmitool
    console: ipmitool-socat
    raid: agent
  agent_irmc:
    hardware_type: irmc
    boot: irmc-virtual-media
    deploy: direct
    inspect: irmc
    management: irmc
    power: irmc
    console: ipmitool-socat
    raid: irmc
  pxe_drac:
    hardware_type: idrac
    boot: pxe
    deploy: direct
    inspect: idrac-redfish
    management: idrac-redfish
    power: idrac-redfish
    console: no-console
    raid: idrac-redfish
  pxe_drac_inspector:
    hardware_type: idrac
    boot: pxe
    deploy: direct
    inspect: inspector
    management: idrac-redfish
    power: idrac-redfish
    console: no-console
    raid: idrac-redfish
  pxe_ilo:
    hardware_type: ilo
    boot: ilo-pxe
    deploy: direct
    inspect: ilo
    management: ilo
    power: ilo
    console: ilo
    raid: ilo
  pxe_ipmitool:
    hardware_type: ipmi
    boot: pxe
    deploy: direct
    inspect: inspector
    management: ipmitool
    power: ipmitool
    console: no-console
    raid: no-raid
  pxe_ipmitool_socat:
    hardware_type: ipmi
    boot: pxe
    deploy: direct
    inspect: inspector
    management: ipmitool
    power: ipmitool
    console: ipmitool-socat
    raid: no-raid
  pxe_irmc:
    hardware_type: irmc
    boot: irmc-pxe
    deploy: direct
    inspect: irmc
    management: irmc
    power: irmc
    console: ipmitool-socat
    raid: irmc
  pxe_snmp:
    hardware_type: snmp
    boot: pxe
    deploy: direct
    inspect: no-inspect
    management: fake
    power: snmp
    console: no-console
    raid: no-raid
  pxe_redfish:
    hardware_type: redfish
    boot: pxe
    deploy: direct
    inspect: redfish
    management: redfish
    power: redfish
    console: no-console
    raid: no-raid

ironic_packages_list: |-
  {%- set package_list = [] %}
  {%- if ironic_services['ironic-api']['group'] in group_names %}
  {%-   set package_list = package_list + ironic_api_distro_packages %}
  {%- endif %}
  {%- if ironic_services['ironic-conductor']['group'] in group_names %}
  {%-   set package_list = package_list + ironic_conductor_distro_packages %}
  {%-   if ironic_standalone | bool %}
  {%-     set package_list = package_list + ironic_conductor_standalone_distro_packages %}
  {%-   endif %}
  {%- endif %}
  {%- if ironic_inspector_dhcp_type == "dnsmasq" %}
  {%-   set package_list = package_list + ironic_inspector_dnsmasq_distro_packages %}
  {%- else %}
  {%-   set package_list = package_list + ironic_inspector_isc_dhcp_distro_packages %}
  {%- endif %}
  {%- if ironic_inspector_boot_mode == "http" %}
  {%-   set package_list = package_list + ironic_inspector_http_distro_packages %}
  {%- endif %}
  {%- if 'ipmitool-socat' in (filtered_ironic_drivers | json_query('[*].console') | unique) %}
  {%-   set package_list = package_list + ironic_ipmitool_socat_distro_packages %}
  {%- endif %}
  {{- package_list -}}

ironic_service_user_list: >
  {%- set service_user_list = [] %}
  {%- if ironic_services['ironic-api']['group'] in group_names %}
  {%-   set _ = service_user_list.append(
          {
            'name': ironic_service_user_name,
            'password': ironic_service_password,
            'role': ironic_service_role_names
          }
        )
  %}
  {%- endif %}
  {%- if ironic_services['ironic-inspector']['group'] in group_names %}
  {%-   set _ = service_user_list.append(
          {
            'name': ironic_inspector_service_user_name,
            'password': ironic_inspector_service_password,
            'role': ironic_inspector_service_role_names
          }
        )
  %}
  {%- endif %}
  {{- service_user_list -}}

ironic_service_endpoint_list: >
  {%- set service_endpoint_list = [] %}
  {%- if ironic_services['ironic-api']['group'] in group_names %}
  {%-   set _ = service_endpoint_list.append(
          {
            'service': ironic_service_name,
            'interface': 'public',
            'url': ironic_service_publicurl
          }
        )
  %}
  {%-   set _ = service_endpoint_list.append(
          {
            'service': ironic_service_name,
            'interface': 'internal',
            'url': ironic_service_internalurl
          }
        )
  %}
  {%-   set _ = service_endpoint_list.append(
          {
            'service': ironic_service_name,
            'interface': 'admin',
            'url': ironic_service_adminurl
          }
        )
  %}
  {%- endif %}
  {%- if ironic_services['ironic-inspector']['group'] in group_names %}
  {%-   set _ = service_endpoint_list.append(
          {
            'service': ironic_inspector_service_name,
            'interface': 'public',
            'url': ironic_inspector_service_publicurl
          }
        )
  %}
  {%-   set _ = service_endpoint_list.append(
          {
            'service': ironic_inspector_service_name,
            'interface': 'internal',
            'url': ironic_inspector_service_internalurl
          }
        )
  %}
  {%-   set _ = service_endpoint_list.append(
          {
            'service': ironic_inspector_service_name,
            'interface': 'admin',
            'url': ironic_inspector_service_adminurl
          }
        )
  %}
  {%- endif %}
  {{- service_endpoint_list -}}

ironic_service_catalog_list: >
  {%- set service_catalog_list = [] %}
  {%- if ironic_services['ironic-api']['group'] in group_names %}
  {%-   set _ = service_catalog_list.append(
          {
            'name': ironic_service_name,
            'type': ironic_service_type,
            'description': ironic_service_description
          }
        )
  %}
  {%- endif %}
  {%- if ironic_services['ironic-inspector']['group'] in group_names %}
  {%-   set _ = service_catalog_list.append(
          {
            'name': ironic_inspector_service_name,
            'type': ironic_inspector_service_type,
            'description': ironic_inspector_service_description
          }
        )
  %}
  {%- endif %}
  {{- service_catalog_list -}}

filtered_ironic_services: |-
  {% set services = [] %}
  {% for key, value in ironic_services.items() %}
  {%   if (value['group'] in group_names) and
          (('service_en' not in value) or
           ('service_en' in value and value['service_en'])) and
           not ('wsgi_app' in value and value['wsgi_app']) %}
  {%     set _ = value.update(
           {
             'service_key': key,
             'enabled': value['enabled'] | default(True),
             'state': value['state'] | default('started'),
             'config_overrides': value.init_config_overrides
           }
         )
  %}
  {%     set _ = value.pop('init_config_overrides') %}
  {# Note (noonedeadpunk): The following if statement is added for backwards compatibility #}
  {# As up to train release ironic role didn't have 'execstarts' in ironic_services keys #}
  {%     if ('execstarts' not in value) %}
  {%       set _ = value.update({'execstarts': value.program_override | default(ironic_bin ~ '/' ~ value.service_name)}) %}
  {%     endif %}
  {%     set _ = services.append(value) %}
  {%   endif %}
  {% endfor %}
  {{ services }}

uwsgi_ironic_services: |-
  {% set services = {} %}
  {% for key, value in ironic_services.items() %}
  {%   if (value['group'] in group_names) and
         (('condition' not in value) or ('condition' in value and value['condition']))
         and ('wsgi_app' in value and value['wsgi_app']) %}
  {%     set _ = value.update(
            {
             'wsgi_venv': ironic_bin | dirname,
             'uwsgi_uid': ironic_system_user_name,
             'uwsgi_guid': ironic_system_group_name,
             'uwsgi_processes': ironic_wsgi_processes,
             'uwsgi_threads': ironic_wsgi_threads
           }
         ) %}
  {%     set _ = services.update({key: value}) %}
  {%   endif %}
  {% endfor %}
  {{ services }}

filtered_ironic_drivers: |-
  {% if ironic_ipxe_enabled | bool %}
  {% set concat_drivers = [{'boot': 'ipxe'}] %}
  {% else %}
  {% set concat_drivers = [] %}
  {% endif %}
  {% set _driver_types = ironic_driver_types | combine(ironic_user_driver_types, recursive=True) %}
  {% for driver in ironic_drivers_enabled %}
  {%   if driver in _driver_types.keys() %}
  {%     set _ = concat_drivers.append(_driver_types[driver]) %}
  {%   endif %}
  {% endfor %}
  {{ concat_drivers }}

ironic_venv_packages: |-
  {%- set pkg_list = ironic_pip_packages %}
  {%- set _ = pkg_list.extend(ironic_user_pip_packages) %}
  {%- set _ = pkg_list.extend(ironic_inspector_pip_packages) %}
  {%- set _ = pkg_list.extend(ironic_inspector_user_pip_packages) %}
  {{- pkg_list | unique }}

ironic_ipmitool_socat_distro_packages:
  - socat