|
41 | 41 | cluster_group: "{{ stack_output.stdout | from_json }}"
|
42 | 42 | when: cluster_state == 'query'
|
43 | 43 |
|
44 |
| -- name: Extract server ids from cluster group output |
45 |
| - set_fact: |
46 |
| - cluster_servers: "{{ cluster_group.output_value | json_query('[*].nodes[*].id') | flatten }}" |
47 |
| - cluster_interfaces: "{{ cluster_net | map(attribute='net') | list }}" |
48 |
| - |
49 |
| -- name: Attach interfaces to servers |
50 |
| - os_server_interface: |
51 |
| - auth_type: "{{ cluster_auth_type or omit }}" |
52 |
| - auth: "{{ cluster_auth or omit }}" |
53 |
| - cloud: "{{ cluster_cloud or omit }}" |
54 |
| - state: "{{ cluster_state }}" |
55 |
| - server_id: "{{ item }}" |
56 |
| - interfaces: "{{ cluster_interfaces }}" |
57 |
| - with_items: "{{ cluster_servers }}" |
58 |
| - register: openstack_server_interfaces |
59 |
| - |
60 |
| -- set_fact: |
61 |
| - cluster_server_interfaces: "{{ dict(cluster_servers | zip(openstack_server_interfaces.results)) }}" |
62 |
| - |
63 | 44 | - name: Reset the python interpreter
|
64 | 45 | set_fact:
|
65 | 46 | ansible_python_interpreter: "{{ old_python_interpreter }}"
|
66 | 47 | when: cluster_venv != None
|
67 | 48 |
|
68 | 49 | - block:
|
| 50 | + - name: Extract server ids from cluster group output |
| 51 | + set_fact: |
| 52 | + cluster_servers: "{{ cluster_group.output_value | json_query('[*].nodes[*].id') | flatten }}" |
| 53 | + cluster_interfaces: "{{ cluster_net | map(attribute='net') | list }}" |
| 54 | + |
| 55 | + - name: Attach interfaces to servers |
| 56 | + os_server_interface: |
| 57 | + auth_type: "{{ cluster_auth_type or omit }}" |
| 58 | + auth: "{{ cluster_auth or omit }}" |
| 59 | + cloud: "{{ cluster_cloud or omit }}" |
| 60 | + state: "{{ cluster_state }}" |
| 61 | + server_id: "{{ item }}" |
| 62 | + interfaces: "{{ cluster_interfaces }}" |
| 63 | + with_items: "{{ cluster_servers }}" |
| 64 | + register: openstack_server_interfaces |
| 65 | + |
| 66 | + - name: Convert list of interfaces to a dictionary for easy lookup in inventory templating step |
| 67 | + set_fact: |
| 68 | + cluster_server_interfaces: "{{ dict(cluster_servers | zip(openstack_server_interfaces.results)) }}" |
| 69 | + |
69 | 70 | - name: Extract node objects
|
70 | 71 | set_fact:
|
71 | 72 | cluster_nodes: "{{ cluster_group.output_value | sum(attribute='nodes', start=[]) }}"
|
|
0 commit comments