dns_route53.yml 1.4 KB

12345678910111213141516171819202122232425262728293031
  1. ---
  2. - name: creating route53 zone(s)
  3. route53_zone:
  4. comment: "{{ openshift_aws_dns_zone }}"
  5. state: present
  6. vpc_id: "{{ item }}"
  7. vpc_region: "{{ openshift_aws_region }}"
  8. zone: "{{ openshift_aws_dns_zone }}"
  9. with_items: "{{ l_zone_items }}"
  10. vars:
  11. # for each item in openshift_aws_dns_records, determine value of private_zone (false if unset), map to list
  12. l_pz_list: "{{ openshift_aws_dns_records | list | map('extract', openshift_aws_dns_records, 'private_zone') | map('bool') | list }}"
  13. l_pz_add_private: "{{ (True in l_pz_list) | ternary([vpcout.vpcs.0.id], []) }}"
  14. l_pz_add_public: "{{ (False in l_pz_list) | ternary([''], []) }}"
  15. # This will add '' if there are any private_zone: No records, and will add
  16. # vpcout.vpcs.0.id if there are any private_zone: Yes records.
  17. l_zone_items: "{{ [] + l_pz_add_public + l_pz_add_private }}"
  18. - name: creating record
  19. route53:
  20. command: create
  21. overwrite: no
  22. private_zone: "{{ l_openshift_aws_dns_element.value['private_zone'] | bool }}"
  23. record: "{{ l_openshift_aws_dns_element.key }}.{{ openshift_aws_dns_zone }}"
  24. type: "{{ l_openshift_aws_dns_element.value['type'] }}"
  25. ttl: 300
  26. value: "{{ l_openshift_aws_dns_element.value['value'] }}"
  27. zone: "{{ openshift_aws_dns_zone }}"
  28. with_dict: "{{ l_openshift_aws_dns_records }}"
  29. loop_control:
  30. loop_var: l_openshift_aws_dns_element