main.yml 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. - name: "Find ec2 instances: #{{ ec2_hosts_tag }}"
  2. amazon.aws.ec2_instance_info:
  3. filters: '{ "tag-key": "{{ ec2_hosts_tag }}",
  4. "instance-state-name": [ "running" ] }'
  5. register: ec2_hosts_instances
  6. delegate_to: localhost
  7. become: false
  8. - name: Combine
  9. set_fact:
  10. ec2_hosts: "{{ dict(ec2_hosts_tags | zip(ec2_hosts_ips)) }}"
  11. ec2_hosts_v6: "{{ dict(ec2_hosts_tags | zip(ec2_hosts_ips_v6)) }}"
  12. ec2_hosts_local: "{{ dict(ec2_hosts_tags | zip(ec2_hosts_ips_local)) }}"
  13. vars:
  14. ec2_hosts_tags: "{{
  15. ec2_hosts_instances |
  16. community.general.json_query('instances[*].tags') |
  17. map(attribute=ec2_hosts_tag)
  18. }}"
  19. ec2_hosts_ips: "{{
  20. ec2_hosts_instances |
  21. community.general.json_query('instances[*].network_interfaces[0].association.public_ip')
  22. }}"
  23. ec2_hosts_ips_v6: "{{
  24. ec2_hosts_instances |
  25. community.general.json_query('instances[*].network_interfaces[0].ipv6_addresses[0].ipv6_address')
  26. }}"
  27. ec2_hosts_ips_local: "{{
  28. ec2_hosts_instances |
  29. community.general.json_query('instances[*].private_ip_address')
  30. }}"
  31. delegate_to: localhost
  32. become: false