Blob Blame History Raw
---
- name: Test compatibility with Ansible ipa_dnsrecord module.
  hosts: ipaserver
  become: true
  gather_facts: false

  tasks:

  # setup
  - name: Ensure DNS zones to be used are absent.
    ipadnszone:
      ipaadmin_password: SomeADMINpassword
      name: "{{ item }}"
      state: absent
    with_items:
      - testzone.local
      - 2.168.192.in-addr.arpa

  - name: Ensure DNS zones to be used are present.
    ipadnszone:
      ipaadmin_password: SomeADMINpassword
      name: "{{ item }}"
    with_items:
      - testzone.local
      - 2.168.192.in-addr.arpa

  - name: Ensure that dns record 'host01' is absent
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: host01
      zone_name: testzone.local
      record_type: 'AAAA'
      record_value: '::1'
      state: absent

  - name: Ensure that dns record 'vm-001' is absent
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: vm-001
      zone_name: testzone.local
      record_type: 'AAAA'
      record_value: '::1'
      state: absent

  - name: Ensure a PTR record is absent
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: 5
      record_type: 'PTR'
      record_value: 'internal.ipa.testzone.local'
      zone_name: 2.168.192.in-addr.arpa
      state: absent

  - name: Ensure a TXT record is absent
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: _kerberos
      record_type: 'TXT'
      record_value: 'TESTZONE.LOCAL'
      zone_name: testzone.local
      state: absent

  - name: Ensure a SRV record is absent
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: _kerberos._udp.testzone.local
      record_type: 'SRV'
      record_value: '10 50 88 ipa.testzone.local'
      zone_name: testzone.local
      state: absent

  - name: Ensure an MX record is absent
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: '@'
      record_type: 'MX'
      record_value: '1 mailserver.testzone.local'
      zone_name: testzone.local
      state: absent

  # tests
  - name: Ensure dns record is present
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: vm-001
      record_type: 'AAAA'
      record_value: '::1'
      zone_name: testzone.local
      state: present
    register: result
    failed_when: not result.changed

  - name: Ensure that dns record exists with a TTL
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: host01
      record_type: 'AAAA'
      record_value: '::1'
      record_ttl: 300
      zone_name: testzone.local
      state: present
    register: result
    failed_when: not result.changed

  - name: Ensure a PTR record is present
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: 5
      record_type: 'PTR'
      record_value: 'internal.ipa.testzone.local'
      zone_name: 2.168.192.in-addr.arpa
      state: present
    register: result
    failed_when: not result.changed

  - name: Ensure a TXT record is present
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: _kerberos
      record_type: 'TXT'
      record_value: 'TESTZONE.LOCAL'
      zone_name: testzone.local
      state: present
    register: result
    failed_when: not result.changed

  - name: Ensure a SRV record is present
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: _kerberos._udp.testzone.local
      record_type: 'SRV'
      record_value: '10 50 88 ipa.testzone.local'
      zone_name: testzone.local
      state: present
    register: result
    failed_when: not result.changed

  - name: Ensure an MX record is present
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: '@'
      record_type: 'MX'
      record_value: '1 mailserver.testzone.local'
      zone_name: testzone.local
      state: present
    register: result
    failed_when: not result.changed

  - name: Ensure that dns record is removed
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: host01
      zone_name: testzone.local
      record_type: 'AAAA'
      record_value: '::1'
      state: absent
    register: result
    failed_when: not result.changed

   # cleanup
  - name: Ensure that dns record 'host01' is absent
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: host01
      zone_name: testzone.local
      record_type: 'AAAA'
      record_value: '::1'
      state: absent
    register: result
    failed_when: result.changed

  - name: Ensure that dns record 'vm-001' is absent
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: vm-001
      zone_name: testzone.local
      record_type: 'AAAA'
      record_value: '::1'
      state: absent
    register: result
    failed_when: not result.changed

  - name: Ensure a PTR record is absent
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: 5
      record_type: 'PTR'
      record_value: 'internal.ipa.testzone.local'
      zone_name: 2.168.192.in-addr.arpa
      state: absent
    register: result
    failed_when: not result.changed

  - name: Ensure a TXT record is absent
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: _kerberos
      record_type: 'TXT'
      record_value: 'TESTZONE.LOCAL'
      zone_name: testzone.local
      state: absent
    register: result
    failed_when: not result.changed

  - name: Ensure a SRV record is absent
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: _kerberos._udp.testzone.local
      record_type: 'SRV'
      record_value: '10 50 88 ipa.testzone.local'
      zone_name: testzone.local
      state: absent
    register: result
    failed_when: not result.changed

  - name: Ensure an MX record is absent
    ipadnsrecord:
      ipaadmin_password: SomeADMINpassword
      name: '@'
      record_type: 'MX'
      record_value: '1 mailserver.testzone.local'
      zone_name: testzone.local
      state: absent
    register: result
    failed_when: not result.changed

  - name: Ensure DNS zones to be used are absent.
    ipadnszone:
      ipaadmin_password: SomeADMINpassword
      name: "{{ item }}"
      state: absent
    with_items:
      - testzone.local
      - 2.168.192.in-addr.arpa