|
@@ -16,12 +16,14 @@
|
|
|
|
|
|
- name: set_fact for openstack inventory nodes
|
|
|
set_fact:
|
|
|
+ registered_bastion_nodes: "{{ (registered_nodes_output.stdout | from_json) | json_query(q) }}"
|
|
|
registered_nodes_floating: "{{ (registered_nodes_output.stdout | from_json) | json_query(q2) }}"
|
|
|
vars:
|
|
|
q: "[] | [?metadata.group=='infra.{{stack_name}}']"
|
|
|
q2: "[] | [?metadata.clusterid=='{{stack_name}}'] | [?public_v4!='']"
|
|
|
when:
|
|
|
- refresh_inventory|bool
|
|
|
+ - use_bastion|bool
|
|
|
|
|
|
- name: Add cluster nodes w/o floating IPs to inventory
|
|
|
with_items: "{{ registered_nodes }}"
|
|
@@ -29,9 +31,11 @@
|
|
|
add_host:
|
|
|
name: '{{ item.name }}'
|
|
|
groups: '{{ item.metadata.group }}'
|
|
|
- ansible_host: '{{ item.private_v4 }}'
|
|
|
+ ansible_host: "{% if use_bastion|bool %}{{ item.name }}{% else %}{{ item.private_v4 }}{% endif %}"
|
|
|
ansible_fqdn: '{{ item.name }}'
|
|
|
+ ansible_user: '{{ ssh_user }}'
|
|
|
ansible_private_key_file: '{{ private_ssh_key }}'
|
|
|
+ ansible_ssh_extra_args: '-F {{ ssh_config_path }}'
|
|
|
private_v4: '{{ item.private_v4 }}'
|
|
|
|
|
|
- name: Add cluster nodes with floating IPs to inventory
|
|
@@ -40,8 +44,25 @@
|
|
|
add_host:
|
|
|
name: '{{ item.name }}'
|
|
|
groups: '{{ item.metadata.group }}'
|
|
|
- ansible_host: '{{ item.public_v4 }}'
|
|
|
+ ansible_host: "{% if use_bastion|bool %}{{ item.name }}{% else %}{{ item.private_v4 }}{% endif %}"
|
|
|
ansible_fqdn: '{{ item.name }}'
|
|
|
+ ansible_user: '{{ ssh_user }}'
|
|
|
ansible_private_key_file: '{{ private_ssh_key }}'
|
|
|
+ ansible_ssh_extra_args: '-F {{ ssh_config_path }}'
|
|
|
private_v4: '{{ item.private_v4 }}'
|
|
|
public_v4: '{{ item.public_v4 }}'
|
|
|
+
|
|
|
+ - name: Add bastion node to inventory
|
|
|
+ add_host:
|
|
|
+ name: bastion
|
|
|
+ groups: bastions
|
|
|
+ ansible_host: '{{ registered_bastion_nodes[0].public_v4 }}'
|
|
|
+ ansible_fqdn: '{{ registered_bastion_nodes[0].name }}'
|
|
|
+ ansible_user: '{{ ssh_user }}'
|
|
|
+ ansible_private_key_file: '{{ private_ssh_key }}'
|
|
|
+ ansible_ssh_extra_args: '-F {{ ssh_config_path }}'
|
|
|
+ private_v4: '{{ registered_bastion_nodes[0].private_v4 }}'
|
|
|
+ public_v4: '{{ registered_bastion_nodes[0].public_v4 }}'
|
|
|
+ when:
|
|
|
+ - registered_bastion_nodes is defined
|
|
|
+ - use_bastion|bool
|