Hello guys,


I am trying to run a playbook that does the following situation:


I want to update a current A record with a new IP address; if it doesn't 
exist, it will create a new A record.


My current playbook does the following tasks:


Check if the A record inside our DNS Manager exists.

   - If it doesn't, my playbook will create a new A record.
   - If it does, it will delete the current A record and recreate with a 
   new IP address.


Just want to check if there is a better way to achieve it without delete 
and recreate the A record, I couldn't figure out a way to only update the 
current A record using "Set-DnsServerResourceRecord".


---


- hosts: all

  gather_facts: true

  vars: 

    dns_name: "test_01"

    ip: "10.10.10.13"


  tasks:


  - name: "Check a DNS record"

    win_shell: |

      try {

      (Get-DnsServerResourceRecord `

        -ZoneName "{{ dns_domain }}" `

        -name "{{ dns_name }}" `

        -RRType 'A' `

        -ErrorAction stop `

        -ComputerName "{{ dns_server 
}}").RecordData.IPv4Address.IPAddressToString

      } catch {

        write-host "failed"

      }

    delegate_to: "{{ mgmt_server }}"

    changed_when: false

    register: check_out


  - name: DNS output

    debug:

      var: check_out.stdout_lines[0]


   - name: Remove static record

     win_dns_record:

       name: "{{ dns_name }}"

       type: "A"

       state: absent

       zone: "{{ dns_domain }}"


   - name: Register

     win_shell: |

       Add-DnsServerResourceRecordA `

       -ZoneName "{{ dns_domain }}" `

       -name "{{ dns_name }}" `

       -AllowUpdateAny `

       -IPv4Address "{{ ip }}" `

       -ComputerName "{{ dns_server }}"

     delegate_to: "{{ mgmt_server }}"

     register: change_out

     throttle: 1


  - name: Change output

    debug:

      var: change_out

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/83b926d6-ecef-427d-8744-3483379410a0%40googlegroups.com.

Reply via email to