128 lines
4.5 KiB
YAML
128 lines
4.5 KiB
YAML
---
|
|
- name: register is_upstream variable
|
|
shell: |
|
|
rpm -q openstack-tripleo-heat-templates | grep '\.el[[:digit:]]\.'
|
|
failed_when: false
|
|
register: is_upstream
|
|
|
|
- name: get enabled services for each role from stack output
|
|
shell: |
|
|
source {{ undercloud_rc }}
|
|
openstack stack output show -f yaml {{ overcloud_stack_name }} EnabledServices -c output_value
|
|
register: enabled_services_out
|
|
when:
|
|
- not mock_environment|bool
|
|
- not ephemeral_heat|bool
|
|
|
|
- name: get enabled services for each role from stack export
|
|
shell: |
|
|
import yaml
|
|
|
|
e = yaml.safe_load(open("{{ working_dir }}/overcloud-deploy/{{ overcloud_stack_name }}/{{ overcloud_stack_name }}-export.yaml"))
|
|
print(yaml.dump(dict(output_value=dict(all=e['parameter_defaults']['AllNodesExtraMapData']['enabled_services']))))
|
|
args:
|
|
executable: /usr/bin/python3
|
|
register: enabled_services_out
|
|
when:
|
|
- not mock_environment|bool
|
|
- ephemeral_heat|bool
|
|
|
|
- name: set enabled_services fact
|
|
vars:
|
|
default_stdout:
|
|
output_value: {}
|
|
set_fact:
|
|
enabled_services: "{{ dict(enabled_services_out.get('stdout', default_stdout)|from_yaml).get('output_value') }}"
|
|
|
|
- name: set deployment_with_ha and deployment_with_ovs fact
|
|
set_fact:
|
|
deployment_with_ha_upstream: "{{ is_upstream.rc == 0 and ('pacemaker' in enabled_services|string) }}"
|
|
deployment_with_ovs: "{{ 'neutron_ovs_agent' in enabled_services|string }}"
|
|
deployment_with_ovn: "{{ 'neutron_plugin_ml2_ovn' in enabled_services| string }}"
|
|
|
|
- name: set ceph_osd_enabled fact
|
|
set_fact:
|
|
ceph_osd_enabled: "{{ enabled_services.values() | list | flatten | intersect(['ceph_osd','ceph_mgr','ceph_mon']) | length > 0 | bool }}"
|
|
|
|
- name: get container registry network
|
|
shell: |
|
|
{% if ephemeral_heat | bool %}
|
|
import yaml
|
|
e = yaml.safe_load(open("{{ working_dir }}/overcloud-deploy/{{ overcloud_stack_name }}/{{ overcloud_stack_name }}-export.yaml"))
|
|
print(e['parameter_defaults']['AllNodesExtraMapData']['docker_registry_network'])
|
|
{% else %}
|
|
source {{ undercloud_rc }}
|
|
openstack stack output show -f yaml {{ overcloud_stack_name }} DockerRegistryNetwork -c output_value
|
|
{% endif %}
|
|
args:
|
|
executable: "{{ (ephemeral_heat | bool) | ternary('/usr/bin/python3', '/bin/bash') }}"
|
|
register: docker_registry_network_out
|
|
when:
|
|
- not mock_environment|bool
|
|
|
|
- name: set container registry network fact
|
|
set_fact:
|
|
docker_registry_network: "{{ docker_registry_network_out.get('stdout', '') }}"
|
|
|
|
- name: get undercloud short host name
|
|
command: hostname -s
|
|
register: undercloud_short_host_name
|
|
|
|
- name: set undercloud short host name fact
|
|
set_fact:
|
|
undercloud_short_host_name: "{{ undercloud_short_host_name.stdout }}"
|
|
|
|
- name: get undercloud DNS domain name
|
|
command: hostname -d
|
|
register: undercloud_domain
|
|
|
|
- name: set undercloud DNS domain name fact
|
|
set_fact:
|
|
undercloud_domain: "{{ undercloud_domain.stdout }}"
|
|
|
|
- name: get network-data-file
|
|
shell: |
|
|
awk '/-n\s/ || /--networks-file\s/ {gsub(/[[:space:]]/, "", $2); print $2}' {{ overcloud_deploy_script }}
|
|
register: network_data_file
|
|
|
|
- name: set network_data_file fact
|
|
set_fact:
|
|
network_data_file: "{{ network_data_file.stdout }}"
|
|
|
|
- name: get env files used during deploy
|
|
shell: |
|
|
awk '/-e\s|--environment-file\s/ {gsub(/[[:space:]]/, "", $2); print $2}' {{ overcloud_deploy_script }}
|
|
register: initial_env_file
|
|
|
|
- name: set initial_env_file fact
|
|
set_fact:
|
|
initial_env_file: "{{ initial_env_file }}"
|
|
|
|
- name: get network environment fact for FFWD3
|
|
set_fact:
|
|
network_environment_file: "{{initial_env_file.stdout_lines | select('search','network-environment')| first}}"
|
|
when: initial_env_file.stdout_lines | select('search','network-environment') | list | count > 0
|
|
|
|
- name: fetch roles-data file referenced in initial deploy script
|
|
shell: |
|
|
awk '/-r\s|--roles-file\s/ {gsub(/[[:space:]]/, "", $2); print $2}' {{ overcloud_deploy_script }}
|
|
register: roles_data_file
|
|
|
|
- name: set roles-data fact
|
|
vars:
|
|
roles_data: "{{ roles_data_file.stdout }}"
|
|
set_fact:
|
|
roles_data: "{{ (roles_data_file.stdout) | ternary(roles_data, default_roles_data) }}"
|
|
custom_roles_used: "{{ (roles_data_file.stdout) | ternary(true, false) }}"
|
|
|
|
- name: check if bm nodes are present
|
|
shell: |
|
|
source {{ undercloud_rc }}
|
|
openstack baremetal node list -f value -c UUID
|
|
when: not mock_environment|bool
|
|
register: bm_node_present
|
|
|
|
- name: set fact splitstack_deployment
|
|
set_fact:
|
|
splitstack_deployment: "{{ (bm_node_present.get('stdout_lines', [])) | ternary(false, true) | default(false) }}"
|