Мне нужно обновить некоторую конфигурацию, которая включает в себя список всех узлов EC2 в моем кластере, но также конфигурации каждого узла должны знать свой собственный общедоступный EC2 и частный IP-адрес.
Для полного списка у меня есть следующее:
- name: Gather EC2 facts on all nodes
ec2_instance_facts:
region: "{{ aws.region }}"
filters:
"tag:Type": nodeType
"tag:Name": '{{ aws.ec2.nodes.name }}'
"instance-state-name": running
register: ec2_facts
Затем соберите все IP-адреса и добавьте их в группу:
- name: Gather IPs for all hosts
add_host: hostname={{ item.public_ip_address }} groups=allIpAddresses
loop: "{{ ec2_facts.instances }}"
when:
- item.state.name == "running"
Затем эта переменная groups используется в другомиграть и использовать для замены значений в шаблоне Ansible:
- seeds: "{{ allIpAddresses[0] }},{{ allIpAddresses[1] }},{{ allIpAddresses[2] }},{{ allIpAddresses[3] }}"
Однако я не могу извлечь или определить, какой публичный и частный IP-адрес для "текущего" хоста.