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_nova/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.

nova_conf_dir: /etc/nova
nova_conf_version_dir: "{{ (nova_install_method == 'distro') | ternary(nova_conf_dir, (nova_bin | dirname) + nova_conf_dir) }}"

_nova_is_first_play_host: >-
  {{
    (nova_services['nova-conductor']['group'] in group_names and
      inventory_hostname == (groups[nova_services['nova-conductor']['group']] | select('in', ansible_play_hosts)) | first) | bool
  }}

_nova_oslomsg_rpc_vhost_conf: >-
  {{
    (nova_oslomsg_rpc_vhost is string) | ternary(
      nova_oslomsg_rpc_vhost, nova_oslomsg_rpc_vhost | selectattr('state', 'eq', 'present') | map(attribute='name') | first
    )
  }}

_nova_oslomsg_notify_vhost_conf: >-
  {{
    (nova_oslomsg_notify_vhost is string) | ternary(
      nova_oslomsg_notify_vhost, nova_oslomsg_notify_vhost | selectattr('state', 'eq', 'present') | map(attribute='name') | first
    )
  }}

_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_console_proxy_types: |-
  {% set _console_types = [ironic_console_type] %}
  {% set _compute_arch_list = nova_services['nova-compute']['group'] | map(
                                'extract', hostvars, ['ansible_facts', 'architecture']) | map('default', 'disabled') %}
  {% for arch in _compute_arch_list | unique %}
  {%   set _ = _console_types.append(nova_console_type_mapping[arch]) %}
  {% endfor %}
  {{ _console_types | unique }}

nova_venv_packages: |-
  {%- set pkg_list = nova_pip_packages | union(nova_user_pip_packages) %}
  {%- if nova_blazar_enabled | bool %}
  {%-   if (nova_services['nova-scheduler']['group'] in group_names) %}
  {%-     set _ = pkg_list.extend(nova_blazar_pip_packages) %}
  {%-   endif %}
  {%- endif %}
  {%- if ('novnc' in nova_console_proxy_types) %}
  {%-   set _ = pkg_list.extend(nova_novnc_pip_packages) %}
  {%- endif %}
  {%- if (nova_services['nova-compute']['group'] in group_names) %}
  {%-   if nova_virt_type == 'ironic' %}
  {%-     set _ = pkg_list.extend(nova_compute_ironic_pip_packages) %}
  {%-   endif %}
  {%- endif %}
  {{- pkg_list | unique }}

#
# Compile a list of the services on a host based on whether
# the host is in the host group and the service is enabled.
#
filtered_nova_services: |-
  {% set services = [] %}
  {% for key, value in nova_services.items() %}
  {%   if (value['group'] in group_names) and
          (('condition' not in value) or
           ('condition' in value and value['condition'])) 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')
            }
          )
  %}
  {%     set _ = services.append(value) %}
  {%   endif %}
  {% endfor %}
  {{ services | sort(attribute='start_order') }}

uwsgi_nova_services: |-
  {% set services = {} %}
  {% for key, value in nova_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': ((nova_install_method == 'source') | ternary(nova_bin | dirname, None)),
             'uwsgi_uid': nova_system_user_name,
             'uwsgi_guid': nova_system_group_name,
             'uwsgi_processes': nova_wsgi_processes,
             'uwsgi_threads': nova_wsgi_threads
           }
         ) %}
  {%     set _ = services.update({key: value}) %}
  {%   endif %}
  {% endfor %}
  {{ services }}

# Define all Nova mountpoints when using NFS. If defined
# the corresponding directory will only be created by the
# mount point task.
nova_mount_points: |-
  {% set mps = [] %}
  {% for mp in nova_nfs_client %}
  {%   set _ = mps.append(mp.local_path) %}
  {% endfor %}
  {{ mps }}

_nova_rootwrap_conf_overrides:
  DEFAULT:
    filters_path: "{{ nova_conf_dir }}/rootwrap.d,/usr/share/nova/rootwrap"
    exec_dirs: "{{ nova_bin }},/sbin,/usr/sbin,/bin,/usr/bin,/usr/local/bin,/usr/local/sbin"

nova_core_files:
  - tmp_f: "/tmp/api-paste.ini"
    target_f: "{{ nova_conf_version_dir }}/api-paste.ini"
    config_overrides: "{{ nova_api_paste_ini_overrides }}"
    config_type: "ini"
  - tmp_f: "/tmp/rootwrap.conf"
    target_f: "{{ nova_conf_version_dir }}/rootwrap.conf"
    config_overrides: "{{ _nova_rootwrap_conf_overrides | combine(nova_rootwrap_conf_overrides, recursive=True) }}"
    config_type: "ini"
    owner: "root"
    group: "{{ nova_system_group_name }}"
    mode: "0640"

_nova_my_ip: "{{ (nova_management_address == 'localhost') | ternary('127.0.0.1', nova_management_address) }}"

_nova_scheduler_filters: |-
  {% set default_filters = nova_scheduler_default_filters %}
  {% if default_filters is not iterable and default_filters is string %}
  {%   set filters = default_filters.split(',') %}
  {% else %}
  {%   set filters = default_filters %}
  {% endif %}
  {% if nova_blazar_enabled | bool %}
  {%   set _ = filters.extend(nova_blazar_scheduler_filters) %}
  {% endif %}
  {{ filters + nova_scheduler_extra_filters }}

_qemu_default_conf_dict: |-
  {% set qemu_dict = {} %}
  {% if nova_rbd_inuse or nova_cinder_rbd_inuse %}
  {%   set _ = qemu_dict.update({'max_files': '32768'}) %}
  {%   set _ = qemu_dict.update({'max_processes': '131072'}) %}
  {% endif %}
  {{ qemu_dict }}

_nova_qemu_conf: "{{ _qemu_default_conf_dict | combine(qemu_conf_dict) }}"

_nova_cache_backend_map:
  dogpile:
    - oslo_cache.memcache_pool
    - dogpile.cache.pymemcache
    - dogpile.cache.memcached
    - dogpile.cache.bmemcached
  mongo:
    - oslo_cache.mongo
  etcd3gw:
    - oslo_cache.etcd3gw

_nova_cache_backend_package: |-
  {% set oslo = namespace(backend='dogpile') %}
  {% for key, value in _nova_cache_backend_map.items() %}
  {%   if nova_cache_backend in value %}
  {%     set oslo.backend = key %}
  {%-   endif %}
  {%- endfor %}
  oslo.cache[{{ oslo.backend }}]