summaryrefslogtreecommitdiffstats
path: root/roles/dns-records/tasks/main.yml
blob: 3672a8ea66412ee2edd9a6f7c2f5204818d7fbe8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
---
- name: "Generate list of private A records"
  set_fact:
    private_records: "{{ private_records | default([]) + [ { 'type': 'A', 'hostname': hostvars[item]['ansible_hostname'], 'ip': hostvars[item]['private_v4'] } ] }}"
  with_items: "{{ groups['cluster_hosts'] }}"

- name: "Add wildcard records to the private A records for infrahosts"
  set_fact:
    private_records: "{{ private_records | default([]) + [ { 'type': 'A', 'hostname': '*.' + openshift_app_domain, 'ip': hostvars[item]['private_v4'] } ] }}"
  with_items: "{{ groups['infra_hosts'] }}"

- name: "Set the private DNS server to use the external value (if provided)"
  set_fact:
    nsupdate_server_private: "{{ external_nsupdate_keys['private']['server'] }}"
    nsupdate_key_secret_private: "{{ external_nsupdate_keys['private']['key_secret'] }}"
    nsupdate_key_algorithm_private: "{{ external_nsupdate_keys['private']['key_algorithm'] }}"
  when:
    - external_nsupdate_keys is defined
    - external_nsupdate_keys['private'] is defined

- name: "Set the private DNS server to use the provisioned value"
  set_fact:
    nsupdate_server_private: "{{ hostvars[groups['dns'][0]].public_v4 }}"
    nsupdate_key_secret_private: "{{ hostvars[groups['dns'][0]].nsupdate_keys['private-' + full_dns_domain].key_secret }}"
    nsupdate_key_algorithm_private: "{{ hostvars[groups['dns'][0]].nsupdate_keys['private-' + full_dns_domain].key_algorithm }}"
  when:
    - nsupdate_server_private is undefined

- name: "Generate the private Add section for DNS"
  set_fact:
    private_named_records:
      - view: "private"
        zone: "{{ full_dns_domain }}"
        server: "{{ nsupdate_server_private }}"
        key_name: "{{ ( 'private-' + full_dns_domain ) }}"
        key_secret: "{{ nsupdate_key_secret_private }}"
        key_algorithm: "{{ nsupdate_key_algorithm_private | lower }}"
        entries: "{{ private_records }}"

- name: "Generate list of public A records"
  set_fact:
    public_records: "{{ public_records | default([]) + [ { 'type': 'A', 'hostname': hostvars[item]['ansible_hostname'], 'ip': hostvars[item]['public_v4'] } ] }}"
  with_items: "{{ groups['cluster_hosts'] }}"
  when: hostvars[item]['public_v4'] is defined

- name: "Add wildcard records to the public A records"
  set_fact:
    public_records: "{{ public_records | default([]) + [ { 'type': 'A', 'hostname': '*.' + openshift_app_domain, 'ip': hostvars[item]['public_v4'] } ] }}"
  with_items: "{{ groups['infra_hosts'] }}"
  when: hostvars[item]['public_v4'] is defined

- name: "Set the public DNS server details to use the external value (if provided)"
  set_fact:
    nsupdate_server_public: "{{ external_nsupdate_keys['public']['server'] }}"
    nsupdate_key_secret_public: "{{ external_nsupdate_keys['public']['key_secret'] }}"
    nsupdate_key_algorithm_public: "{{ external_nsupdate_keys['public']['key_algorithm'] }}"
  when:
    - external_nsupdate_keys is defined
    - external_nsupdate_keys['public'] is defined

- name: "Set the public DNS server details to use the provisioned value"
  set_fact:
    nsupdate_server_public: "{{ hostvars[groups['dns'][0]].public_v4 }}"
    nsupdate_key_secret_public: "{{ hostvars[groups['dns'][0]].nsupdate_keys['public-' + full_dns_domain].key_secret }}"
    nsupdate_key_algorithm_public: "{{ hostvars[groups['dns'][0]].nsupdate_keys['public-' + full_dns_domain].key_algorithm }}"
  when:
    - nsupdate_server_public is undefined

- name: "Generate the public Add section for DNS"
  set_fact:
    public_named_records:
      - view: "public"
        zone: "{{ full_dns_domain }}"
        server: "{{ nsupdate_server_public }}"
        key_name: "{{ ( 'public-' + full_dns_domain ) }}"
        key_secret: "{{ nsupdate_key_secret_public }}"
        key_algorithm: "{{ nsupdate_key_algorithm_public | lower }}"
        entries: "{{ public_records }}"

- name: "Generate the final dns_records_add"
  set_fact:
    dns_records_add: "{{ private_named_records + public_named_records }}"