Ansible dynamic hosts
· 798 B · Text
Raw
- name: Get dns names
set_fact:
__ec2_dns_names: "{{ __ec2_dns_names | default([]) + [ item ] }}"
loop: "{{ __aws_ec2_vault_instances | to_json | from_json | community.general.json_query('sort_by(instances, &tags.Name)[].private_dns_name') }}"
changed_when: false
- name: Add hosts to group 'vault'
ansible.builtin.add_host:
name: "vault-{{ ansible_loop.index }}.lavka.tld"
groups: vault
ansible_host: "{{ item }}"
ansible_ssh_common_args: '-o StrictHostKeyChecking=no -o ProxyCommand="ssh -W %h:%p -q #$ .Rsc `Jumphost.base.User` $#@#$ .Rsc `Jumphost.base.Host` $# -i ~/.ssh/robot-cloud-prime.pem" -i vault.key.pem'
loop: "{{ __ec2_dns_names }}"
loop_control:
extended: true
changed_when: false
| 1 | - name: Get dns names |
| 2 | set_fact: |
| 3 | __ec2_dns_names: "{{ __ec2_dns_names | default([]) + [ item ] }}" |
| 4 | loop: "{{ __aws_ec2_vault_instances | to_json | from_json | community.general.json_query('sort_by(instances, &tags.Name)[].private_dns_name') }}" |
| 5 | changed_when: false |
| 6 | |
| 7 | - name: Add hosts to group 'vault' |
| 8 | ansible.builtin.add_host: |
| 9 | name: "vault-{{ ansible_loop.index }}.lavka.tld" |
| 10 | groups: vault |
| 11 | ansible_host: "{{ item }}" |
| 12 | ansible_ssh_common_args: '-o StrictHostKeyChecking=no -o ProxyCommand="ssh -W %h:%p -q #$ .Rsc `Jumphost.base.User` $#@#$ .Rsc `Jumphost.base.Host` $# -i ~/.ssh/robot-cloud-prime.pem" -i vault.key.pem' |
| 13 | loop: "{{ __ec2_dns_names }}" |
| 14 | loop_control: |
| 15 | extended: true |
| 16 | changed_when: false |