In some cases it is useful to use a user other than the default 'kolla' to perform kolla ansible remote execution. Kolla is adding support for this in the Rocky release, we should use it. It is now possible to configure a different user via the kolla_ansible_user and kolla_ansible_group variables. Depends-On: https://review.openstack.org/581330 Change-Id: I280fb8f70eacd31fff0ae5671ddd6608cd02ae6e Story: 2002914 Task: 22892
75 lines
2.4 KiB
Django/Jinja
75 lines
2.4 KiB
Django/Jinja
# This inventory section provides a mapping of the top level groups to hosts.
|
|
#
|
|
# Top level groups define the roles of hosts, e.g. controller or compute.
|
|
# Components define groups of services, e.g. nova or ironic.
|
|
# Services define single containers, e.g. nova-compute or ironic-api.
|
|
|
|
{% set top_level_groups = kolla_overcloud_inventory_top_level_group_map.values() |
|
|
selectattr('groups', 'defined') |
|
|
map(attribute='groups') |
|
|
sum(start=[]) |
|
|
unique |
|
|
list %}
|
|
|
|
{% for group in top_level_groups %}
|
|
# Top level {{ group }} group.
|
|
[{{ group }}]
|
|
# These hostnames must be resolvable from your deployment host
|
|
{% for host in groups.get(group, []) %}
|
|
{% set host_hv=hostvars[host] %}
|
|
{{ host }}{% for hv_name in kolla_overcloud_inventory_pass_through_host_vars %}{% if hv_name in host_hv %} {{ hv_name | regex_replace('^kolla_(.*)$', '\1') }}={{ host_hv[hv_name] }}{% endif %}{% endfor %}
|
|
|
|
{% endfor %}
|
|
|
|
{% endfor %}
|
|
[overcloud:children]
|
|
{% for group in top_level_groups %}
|
|
{{ group }}
|
|
{% endfor %}
|
|
|
|
[overcloud:vars]
|
|
ansible_user={{ kolla_ansible_user }}
|
|
{% if kolla_ansible_become | bool %}
|
|
ansible_become=true
|
|
{% endif %}
|
|
{% if kolla_ansible_target_venv is not none %}
|
|
# Execute ansible modules on the remote target hosts using a virtualenv.
|
|
ansible_python_interpreter={{ kolla_ansible_target_venv }}/bin/python
|
|
{% endif %}
|
|
|
|
|
|
{% for kolla_group, kolla_group_config in kolla_overcloud_inventory_top_level_group_map.items() %}
|
|
{% if 'groups' in kolla_group_config %}
|
|
{% set renamed_groups = kolla_group_config.groups | difference([kolla_group]) | list %}
|
|
{% if renamed_groups | length > 0 %}
|
|
# Mapping from kolla-ansible group {{ kolla_group }} to top level kayobe
|
|
# groups.
|
|
[{{ kolla_group }}:children]
|
|
{% for group in kolla_group_config.groups %}
|
|
{{ group }}
|
|
{% endfor %}
|
|
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if 'vars' in kolla_group_config %}
|
|
# Mapping from kolla-ansible group {{ kolla_group }} to top level kayobe
|
|
# variables.
|
|
[{{ kolla_group }}:vars]
|
|
{% for var_name, var_value in kayobe_group_config.vars.items() %}
|
|
{{ var_name }}={{ var_value }}
|
|
{% endfor %}
|
|
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% for group in kolla_overcloud_inventory_kolla_top_level_groups %}
|
|
{% if not kolla_overcloud_inventory_top_level_group_map.get(group, {}).get('groups') %}
|
|
# Empty group definition for {{ group }}.
|
|
[{{ group }}]
|
|
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
[compute:children]
|
|
inner-compute
|
|
external-compute
|