tripleo-upgrade/tasks/common/load_roles_from_inventory.yaml

27 lines
1.0 KiB
YAML

---
- name: generate inventory file
shell: |
source {{ undercloud_rc }}
/usr/bin/tripleo-ansible-inventory --plan {{ overcloud_stack_name }} \
{% if overcloud_ssh_user != '' %} --ansible_ssh_user {{ overcloud_ssh_user }} {% endif %} \
--static-yaml-inventory {{working_dir}}//tripleo-ansible-inventory.yaml
- name: load inventory file
command: cat {{working_dir}}//tripleo-ansible-inventory.yaml
register: upgrade_tripleo_inventory
- name: store roles
set_fact:
oc_roles: "{{ oc_roles + [item.key] }}"
with_dict: "{{ (upgrade_tripleo_inventory.stdout | from_yaml).overcloud.children }}"
- name: register controller role name
set_fact:
controller_role_name: "{{ item|regex_search('[A-Za-z0-9]*[Cc]ontroller[A-Za-z0-9]*') }}"
when: item|regex_search('[A-Za-z0-9]*[Cc]ontroller[A-Za-z0-9]*')
with_items: "{{ oc_roles }}"
- name: store sorted roles with controller first
set_fact:
oc_roles: "{{ oc_roles|intersect([controller_role_name]) + oc_roles|difference([controller_role_name]) }}"