| | |
| | | register: awsroute53zone |
| | | changed_when: false |
| | | |
| | | - set_fact: |
| | | hostedzoneid: "{{ item.Id | regex_replace('/hostedzone/', '') }}" |
| | | - name: delete zones |
| | | include_tasks: delete_zone.yml |
| | | vars: |
| | | _zone: "{{ loopzone }}" |
| | | _hostedzoneid: "{{ loopzone.Id | regex_replace('/hostedzone/', '') }}" |
| | | when: |
| | | - item.Name == aws_public_zone |
| | | - not item.Config.PrivateZone |
| | | - loopzone.Name == aws_public_zone |
| | | loop: "{{ awsroute53zone.stdout|from_json|json_query('HostedZones') }}" |
| | | |
| | | - set_fact: |
| | | hostedzoneidprivate: "{{ item.Id | regex_replace('/hostedzone/', '') }}" |
| | | when: |
| | | - item.Name == aws_public_zone |
| | | - item.Config.PrivateZone |
| | | loop: "{{ awsroute53zone.stdout|from_json|json_query('HostedZones') }}" |
| | | |
| | | - when: hostedzoneidprivate is defined |
| | | block: |
| | | - name: Get all records from the environment private zone |
| | | route53_facts: |
| | | hosted_zone_id: "{{ hostedzoneidprivate }}" |
| | | query: record_sets |
| | | register: records |
| | | until: records is succeeded |
| | | retries: 10 |
| | | delay: "{{ 60|random(start=3, step=1) }}" |
| | | |
| | | - debug: |
| | | var: records |
| | | verbosity: 2 |
| | | |
| | | - name: Delete all non-alias records from the environment private zone |
| | | route53: |
| | | private_zone: yes |
| | | zone: "{{aws_public_zone}}" |
| | | record: "{{item.Name}}" |
| | | type: "{{item.Type}}" |
| | | value: "{{item.ResourceRecords|json_query('[].Value')}}" |
| | | ttl: "{{item.TTL}}" |
| | | state: absent |
| | | when: >- |
| | | 'Name' in item |
| | | and 'ResourceRecords' in item |
| | | and item.Name != aws_public_zone |
| | | with_items: "{{records.ResourceRecordSets }}" |
| | | ignore_errors: yes |
| | | |
| | | - name: Delete all ALIAS records from the environment public zone |
| | | route53: |
| | | private_zone: yes |
| | | zone: "{{aws_public_zone}}" |
| | | record: "{{item.Name | regex_replace('\\\\052', '*') }}" |
| | | type: "{{item.Type}}" |
| | | alias: yes |
| | | alias_hosted_zone_id: "{{ item.AliasTarget.HostedZoneId }}" |
| | | value: "{{ item.AliasTarget.DNSName }}" |
| | | alias_evaluate_target_health: "{{ item.AliasTarget.EvaluateTargetHealth }}" |
| | | state: absent |
| | | when: >- |
| | | 'Name' in item |
| | | and 'AliasTarget' in item |
| | | and item.Name != aws_public_zone |
| | | |
| | | with_items: "{{records.ResourceRecordSets }}" |
| | | ignore_errors: yes |
| | | |
| | | - name: Remove private dns zone manually because sometimes it is still there (managed by terraform) |
| | | command: >- |
| | | aws route53 delete-hosted-zone --id {{ hostedzoneidprivate }} |
| | | |
| | | - when: hostedzoneid is defined |
| | | block: |
| | | - name: Get all records from the environment public zone |
| | | route53_facts: |
| | | hosted_zone_id: "{{ hostedzoneid }}" |
| | | query: record_sets |
| | | register: records |
| | | until: records is succeeded |
| | | retries: 10 |
| | | delay: "{{ 60|random(start=3, step=1) }}" |
| | | |
| | | - debug: |
| | | var: records |
| | | verbosity: 2 |
| | | |
| | | - name: Delete all non-alias records from the environment public zone |
| | | route53: |
| | | zone: "{{aws_public_zone}}" |
| | | record: "{{item.Name}}" |
| | | type: "{{item.Type}}" |
| | | value: "{{item.ResourceRecords|json_query('[].Value')}}" |
| | | ttl: "{{item.TTL}}" |
| | | state: absent |
| | | when: >- |
| | | 'Name' in item |
| | | and 'ResourceRecords' in item |
| | | and item.Name != aws_public_zone |
| | | with_items: "{{records.ResourceRecordSets }}" |
| | | ignore_errors: yes |
| | | |
| | | - name: Delete all ALIAS records from the environment public zone |
| | | route53: |
| | | zone: "{{aws_public_zone}}" |
| | | record: "{{item.Name | regex_replace('\\\\052', '*') }}" |
| | | type: "{{item.Type}}" |
| | | alias: yes |
| | | alias_hosted_zone_id: "{{ item.AliasTarget.HostedZoneId }}" |
| | | value: "{{ item.AliasTarget.DNSName }}" |
| | | alias_evaluate_target_health: "{{ item.AliasTarget.EvaluateTargetHealth }}" |
| | | state: absent |
| | | when: >- |
| | | 'Name' in item |
| | | and 'AliasTarget' in item |
| | | and item.Name != aws_public_zone |
| | | |
| | | with_items: "{{records.ResourceRecordSets }}" |
| | | ignore_errors: yes |
| | | |
| | | - name: Remove public dns zone manually because sometimes it still has A records |
| | | route53_zone: |
| | | zone: "{{ aws_public_zone }}" |
| | | state: absent |
| | | ignore_errors: yes |
| | | loop_control: |
| | | loop_var: loopzone |
| | | |
| | | - name: Run infra-ec2-template-destroy |
| | | include_role: |