From 755f6e938eea3f1aeea77c26e8bb726ebc2a0fa4 Mon Sep 17 00:00:00 2001 From: moeny-matt Date: Thu, 15 May 2025 17:52:02 -0400 Subject: [PATCH] Run delete before adding A records in plans --- vm_automation/alpine/plans/create_vm.yaml | 18 ++++++++++++++++++ .../common/tasks/delete_dns_a_record.sh | 8 ++++++++ .../tasks/delete_dns_a_record_internal.sh | 8 ++++++++ vm_automation/ubuntu/plans/create_vm.yaml | 18 ++++++++++++++++++ 4 files changed, 52 insertions(+) diff --git a/vm_automation/alpine/plans/create_vm.yaml b/vm_automation/alpine/plans/create_vm.yaml index b647f30..1b510df 100644 --- a/vm_automation/alpine/plans/create_vm.yaml +++ b/vm_automation/alpine/plans/create_vm.yaml @@ -205,6 +205,15 @@ steps: nameserver3: $nameserver3 staging_ip: $staging_ip + - name: delete_dns_a_record + description: Delete existing DNS A record for the VM if it exists + task: common::delete_dns_a_record + targets: localhost + parameters: + network: $network + add_a_record_bool: $add_a_record_bool + dns_hostname: $dns_hostname + - name: add_dns_a_record description: Add a DNS A record for the VM task: common::add_dns_a_record @@ -216,6 +225,15 @@ steps: dns_hostname: $dns_hostname dns_ttl: $dns_ttl + - name: delete_dns_a_record_internal + description: Delete existing internal DNS A record for the VM if it exists + task: common::delete_dns_a_record_internal + targets: localhost + parameters: + network: $network + add_a_record_bool: $add_a_record_bool + dns_hostname: $dns_hostname + - name: add_dns_a_record_internal description: Add an Internal DNS A record for the VM task: common::add_dns_a_record_internal diff --git a/vm_automation/common/tasks/delete_dns_a_record.sh b/vm_automation/common/tasks/delete_dns_a_record.sh index f921682..52ab139 100644 --- a/vm_automation/common/tasks/delete_dns_a_record.sh +++ b/vm_automation/common/tasks/delete_dns_a_record.sh @@ -1,8 +1,16 @@ #!/bin/bash # This script deletes a DNS A record from the DNS server zone file (common::delete_dns_a_record) # Bolt environment variables +NETWORK="${PT_network}" +ADD_A_RECORD="${PT_add_a_record_bool}" HOSTNAME="${PT_dns_hostname}" +# Check if we should add DNS record based on network and add_a_record_bool +if [ "$ADD_A_RECORD" != "true" ] || [ "$NETWORK" != "wan-verizon" ]; then + echo '{"status": "skipped", "message": "Skipping public facing DNS A record deletion based on configuration"}' + exit 0 +fi + # Check if required parameters are provided if [ -z "$HOSTNAME" ]; then echo '{"status": "failure", "message": "Error: dns_hostname parameter must be provided"}' diff --git a/vm_automation/common/tasks/delete_dns_a_record_internal.sh b/vm_automation/common/tasks/delete_dns_a_record_internal.sh index b2b9cdb..91a9662 100644 --- a/vm_automation/common/tasks/delete_dns_a_record_internal.sh +++ b/vm_automation/common/tasks/delete_dns_a_record_internal.sh @@ -1,8 +1,16 @@ #!/bin/bash # This script deletes a DNS A record from the DNS server zone file (common::delete_dns_a_record_internal) # Bolt environment variables +NETWORK="${PT_network}" +ADD_A_RECORD="${PT_add_a_record_bool}" HOSTNAME="${PT_dns_hostname}" +# Check if we should add DNS record based on network and add_a_record_bool +if [ "$ADD_A_RECORD" != "true" ] || [ "$NETWORK" != "internal-moeny" ]; then + echo '{"status": "skipped", "message": "Skipping internal DNS A record deletion based on configuration"}' + exit 0 +fi + # Check if required parameters are provided if [ -z "$HOSTNAME" ]; then echo '{"status": "failure", "message": "Error: dns_hostname parameter must be provided"}' diff --git a/vm_automation/ubuntu/plans/create_vm.yaml b/vm_automation/ubuntu/plans/create_vm.yaml index 9ac80ab..1edf38e 100644 --- a/vm_automation/ubuntu/plans/create_vm.yaml +++ b/vm_automation/ubuntu/plans/create_vm.yaml @@ -181,6 +181,15 @@ steps: nameserver2: $nameserver2 nameserver3: $nameserver3 + - name: delete_dns_a_record + description: Delete existing DNS A record for the VM if it exists + task: common::delete_dns_a_record + targets: localhost + parameters: + network: $network + add_a_record_bool: $add_a_record_bool + dns_hostname: $dns_hostname + - name: add_dns_a_record description: Add a DNS A record for the VM task: common::add_dns_a_record @@ -192,6 +201,15 @@ steps: dns_hostname: $dns_hostname dns_ttl: $dns_ttl + - name: delete_dns_a_record_internal + description: Delete existing internal DNS A record for the VM if it exists + task: common::delete_dns_a_record_internal + targets: localhost + parameters: + network: $network + add_a_record_bool: $add_a_record_bool + dns_hostname: $dns_hostname + - name: add_dns_a_record_internal description: Add an Internal DNS A record for the VM task: common::add_dns_a_record_internal