Devo mettere in piedi un DNS server master/slave e mi trovo davanti al solito quesito sulle opzioni per l’implementazione. Come lo faccio?
- a manina
- Chef
- Ansible
L’opzione numero uno (ogni tanto e soprattutto per i miei ambienti di laboratorio) inizia a sembrarmi quella più rapida, ma per tenersi allenati su IaC è bene usare la 2 o la 3.
Siccome il DNS mi serve per un cluster Openshift direi di procedere con la 3, così farò tutto con Ansible.
Ho preso in affitto una macchina fisica su Kimsufi con sopra Proxmox come hypervisor.
La rete è configurata così.
ocmaster39 (eth0: 10.10.10.10/24, eth1: 192.168.56.10/16) ocslave39 (eth0: 10.10.10.11/24, eth1: 192.168.56.11/16)
Il nostro DNS ascolterà sulla 192.168.0.0 mentre sulla 10.10.10.0 attesterò i servizi di OC.
Una volta completato l’inventory file che è veramente molto scarno in questo caso eseguirò i playbook.
[dns_master] 192.168.56.10 ansible_connection=local [dns_slave] 192.168.56.11
Eseguiamo qualche comando per vedere che la comunicazione funzioni…
[root@ocmaster39 ansible-role-bind]# ansible all -a 'whoami' -m shell 192.168.56.10 | SUCCESS | rc=0 >> root 192.168.56.11 | SUCCESS | rc=0 >> root
Ok si.. tutti usano il ping e quindi lo userò anche io,
[root@ocmaster39 ansible-role-bind]# ansible all -m ping 192.168.56.10 | SUCCESS => { "changed": false, "failed": false, "ping": "pong" } 192.168.56.11 | SUCCESS => { "changed": false, "failed": false, "ping": "pong" }
Convergenza del master (sotto è riportato il playbook usato)
ansible-playbook master.yml
Convergenza slave
ansible-playbook slave.yml
A questo punto Bind è installato e configurato, per cui interroghiamo il master…
[root@ocmaster39 ~]# dig @192.168.56.10 google.it | grep -n1 "ANSWER SECTION" 13- 14:;; ANSWER SECTION: 15-google.it. 188 IN A 172.217.18.195 [root@ocmaster39 ~]# dig @192.168.56.10 ocslave39.openshift.local | grep -n1 "ANSWER SECTION" 13- 14:;; ANSWER SECTION: 15-ocslave39.openshift.local. 1209600 IN A 192.168.56.11
… ora lo slave …
[root@ocmaster39 ~]# dig @192.168.56.11 ocslave39.openshift.local | grep -n1 "ANSWER SECTION" 13- 14:;; ANSWER SECTION: 15-ocslave39.openshift.local. 1209600 IN A 192.168.56.11
Ho forkato il playbook originale per una PR dove ho aggiunto i playbook usati e un po’ di doc.
Trovate l’esempio usato qui
Ciao!