Come installare e configurare un nodo di controllo Ansible - Parte 2
Nell'argomento precedente vengono illustrate le terminologie e i concetti di base di Ansible. In questo argomento (Parte 2 della serie Ansible), dimostreremo come installare e configurare un nodo di controllo Ansible su RHEL 8.
Nella nostra configurazione, utilizzeremo 1 server Ansible e 2 nodi Linux remoti:
Control Node 1: RHEL 8 Server IP: 192.168.0.108 Ansible Server
Managed Host 1: Debian 10 IP: 192.168.0.15 Webserver
Managed Host 2: CentOS 8 IP: 192.168.0.200 Database Server
Cos'è un nodo di controllo Ansible?
Un nodo di controllo è un server Linux su cui è installato Ansible e viene utilizzato per gestire host o nodi remoti. Questi sistemi remoti sono noti come host gestiti o nodi gestiti.
Nella configurazione sopra, il nodo di controllo è il server RHEL 8 su cui verranno installati Ansible e Debian 10 e CentOS 8< sono gli host gestiti.
NOTA: Ansible è installato solo sul nodo di controllo e non sugli host gestiti.
Passaggio 1: installazione di Python 3
Per impostazione predefinita, RHEL 8 viene fornito con Python 3 e puoi verificare la versione di Python installata sul tuo server eseguendo.
python3 -V
Se per qualsiasi motivo Python3 non è installato, installalo utilizzando il seguente comando dnf.
dnf install python3
Se sul tuo sistema RHEL 8 esistono più versioni di Python, puoi impostare Python 3 come versione Python predefinita correndo.
alternatives --set python /usr/bin/python3
Passaggio 2: abilita il repository RedHat ufficiale
Dopo aver installato Python3, assicurati di aver abilitato il repository ufficiale di RedHat per Ansible come mostrato di seguito.
subscription-manager repos --enable ansible-2.8-for-rhel-8-x86_64-rpms
NOTA: affinché il comando precedente funzioni, assicurati di aver registrato il tuo abbonamento RHEL 8 per RedHat.
Passaggio 3: installa Ansible su RHEL 8
Per installare Ansible sul nodo di controllo che è il nostro sistema RHEL 8, esegui il comando.
dnf install ansible -y
Una volta installato, puoi verificare la versione di Ansible installata eseguendo il comando.
ansible --version
Passaggio 4: creazione di un file di inventario host statico
Finora abbiamo installato con successo ansible sul Control Node che è il nostro server RHEL 8. I nodi remoti che devono essere gestiti dal nodo di controllo devono essere definiti in un file chiamato file inventario. Il file di inventario è un file di testo semplice che risiede sul nodo di controllo ed è costituito dai nomi host o dagli indirizzi IP degli host remoti.
Un file host statico è un file di testo semplice che contiene un elenco di nodi gestiti definiti dai relativi indirizzi IP o nomi host. Creiamo un file statico "hosts" nella directory /etc/ansible/.
vi /etc/ansible/hosts
Successivamente, definisci uno o più gruppi per i tuoi host gestiti. Abbiamo 2 host gestiti come visto in precedenza nella configurazione all'introduzione di questo argomento. Dal setup, il file host statico sarà definito come segue:
[webserver]
192.168.0.15
[database_server]
192.168.0.200
Salva ed esci dal file di inventario.
Per elencare gli host gestiti eseguire:
ansible all -i hosts --list-hosts
Finora siamo riusciti a installare Ansible nel nodo di controllo e a definire gli host gestiti in un file Host statico residente sul nodo di controllo.
Successivamente, vedremo come possiamo gestire o controllare i nostri host remoti o gestiti.
Passaggio 5: configurare il nodo di controllo Ansible per connettersi ai nodi remoti
Per il nodo di controllo Ansible (RHEL 8) per gestire i sistemi host remoti (Debian 10 e CentOS 8) dobbiamo impostare l'autenticazione SSH senza password per gli host remoti. Affinché ciò accada, è necessario generare una coppia di chiavi SSH e salvare la chiave pubblica sui nodi remoti.
Sul nodo di controllo Ansible, accedi come utente normale e genera la coppia di chiavi SSH eseguendo il comando.
su tecmint
ssh-keygen
Successivamente, copia la chiave ssh pubblica sui nodi remoti come mostrato.
ssh-copy-id [email (For Debian 10 node)
ssh-copy-id [email (For CentOS 8 node)
Dopo aver aggiunto le chiavi pubbliche a tutti i nostri nodi remoti, emetteremo un comando ping dal nodo Ansible Control per garantire che siano raggiungibili.
ansible -m ping all
Dall'output sopra, possiamo vedere chiaramente che il comando ping ha avuto successo e siamo stati in grado di testare la raggiungibilità di tutti i nodi.
Conclusione
In questa guida, abbiamo installato e configurato con successo Ansible sul nodo di controllo che esegue RHEL 8. Successivamente abbiamo definito gli host remoti in un file host statico e configurato il nodo di controllo per connettere e controllare gli host gestiti impostando l'autenticazione SSH senza password.