Last active 4 months ago

Пример использования динамически генерируемого inventory в ходе работы ansible

Revision 94eb524de648c34057a5e678ba753d94664a005c

Ansible dynamic hosts Raw
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