openstack-ansible-os_nova/vars/main.yml

181 lines
6.2 KiB
YAML

---
# 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_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_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_venv_packages: |-
{%- set pkg_list = nova_pip_packages | union(nova_user_pip_packages) %}
{%- if nova_oslomsg_amqp1_enabled | bool %}
{%- set _ = pkg_list.extend(nova_optional_oslomsg_amqp1_pip_packages) %}
{%- endif %}
{%- 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_path': nova_bin ~ '/' ~ value.wsgi_name,
'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: "/etc/nova/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: "/etc/nova/api-paste.ini"
config_overrides: "{{ nova_api_paste_ini_overrides }}"
config_type: "ini"
- tmp_f: "/tmp/rootwrap.conf"
target_f: "/etc/nova/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_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_oslomsg_heartbeat_in_pthread: "{{ (nova_services['nova-compute']['group'] in group_names) | ternary(False, True) }}"
_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 }}]