--- - name: Get all records command: >- aws route53 list-resource-record-sets --hosted-zone-id {{ _hostedzoneid }} register: records - set_fact: change_batch_dest: "{{ output_dir }}/{{ guid }}_{{ _hostedzoneid }}_delete_records.json" records_to_delete: >- {{ records.stdout |from_json |json_query('ResourceRecordSets') |rejectattr('Name', 'equalto', aws_public_zone) | list }} - when: records_to_delete|length > 0 block: - name: Create route53 change batch (JSON) copy: dest: "{{ change_batch_dest }}" content: | { "Comment": "Delete all records for {{ _hostedzoneid }}", "Changes": [ {% for record in records_to_delete %} { "Action": "DELETE", "ResourceRecordSet": {{ record | to_json }} }{{ "," if not loop.last else "" }} {% endfor %} ] } - name: Delete all record from the zone command: >- aws route53 change-resource-record-sets --hosted-zone-id={{_hostedzoneid}} --change-batch=file://{{ change_batch_dest }} - name: Remove route53 zone command: aws route53 delete-hosted-zone --id {{ _hostedzoneid }}