motionsickness
motionsickness

Reputation: 187

Ansible "nsupdate" module adding zone to record value

I'm trying to use the nsupdate module to update records but I'm having mixed success. While the records do get added, I'm getting the zone appended at the end of the value.

For example: I want a cname called mycname.domain1.com pointed to shawarmas.domain2.com. After I run the playbook I end up with an entry that looks like this:

mycname.domain1.com. 5 IN CNAME shawarmas.domain2.com.domain1.com

Is there something wrong in my playbook that is causing this?

Playbook:

---
- hosts: myserver

  tasks:
  - debug:
      msg: "{{ value }}"
  - name: "Add record to escapia zone"
    nsupdate:
      key_name: "ddns"
      key_secret: "******"
      server: "dnsserver"
      record: "{{ record }}"
      type: "{{ type }}"
      value: "{{ value }}"
      ttl: 5

Run Command:

ansible-playbook -i inv -e "record=record-test.example.com. 
type=CNAME value=test.different.com" exampledns.yml -v

Ansible output:

changed: [myserver] => changed=true
  dns_rc: 0
  dns_rc_str: NOERROR
  record:
    record: record-test.example.com.
    ttl: 5
    type: CNAME
    value:
    - test.different.com
    zone: example.com.

DNS result:

;; ANSWER SECTION:
record-test.example.com. 5     IN      CNAME   test.different.com.example.com

Upvotes: 0

Views: 1087

Answers (1)

Andy Shinn
Andy Shinn

Reputation: 28513

Usually, you need to append a . to the end of the value to make it full qualified. Without the . it is unqualified and appending the zone.

Try with:

ansible-playbook -i inv -e "record=record-test.example.com. type=CNAME value=test.different.com." exampledns.yml -v

Upvotes: 1

Related Questions