Topologia di rete
Qui, ansible-pc è una macchina Debian 10 in cui installeremo Ansible.
I server 6f7c2 e 6b219 sono macchine Debian 10 che configureremo per l'automazione di Ansible. Chiamerò semplicemente questi server host Ansible ai fini di questo articolo.
Possiamo usare Ansible da ansible-pc per automatizzare diverse attività nel 6f7c2 e 6b219 Server Debian.
Installazione di Ansible
In questa sezione, ti mostrerò come installare Ansible su ansible-pc.
Puoi installare Ansible su Debian 10 dal repository ufficiale dei pacchetti di Debian.
Innanzitutto, aggiorna la cache del repository del pacchetto APT con il seguente comando:
$ sudo apt update
Ora, installa Ansible con il seguente comando:
$ sudo apt install ansible
Per confermare l'installazione, premere sì e poi premere
Ansible dovrebbe essere installato.
Ora, esegui il seguente comando per verificare se Ansible funziona correttamente.
$ ansible --versionCome puoi vedere, il comando ansible è disponibile e funziona correttamente. Ansible 2.7.7 è l'ultima versione di Ansible disponibile nel repository dei pacchetti Debian al momento della stesura di questo articolo.
Generazione della chiave SSH
Sulla macchina Debian 10 (ansible-pc) dove hai installato Ansible, devi prima generare una chiave SSH.
Per generare una chiave SSH, esegui il seguente comando:
$ ssh-keygen
Ora premi
stampa
stampa
Dovrebbe essere generata una chiave SSH.
Configurazione di host Debian per Ansible Automation
In questa sezione, ti mostrerò come configurare un host Debian per l'automazione Ansible. Se disponi di più host che desideri automatizzare utilizzando Ansible, ripeti la stessa procedura per ciascuno degli host.
Gli host che desideri configurare per l'automazione Ansible devono avere il pacchetto del server SSH preinstallato.
Innanzitutto, aggiorna la cache del repository del pacchetto APT con il seguente comando:
$ sudo apt update
Quindi, installa il server OpenSSH con il seguente comando:
$ sudo apt install openssh-server -y
Nel mio caso, il pacchetto del server OpenSSH è già installato. Se non è installato nel tuo caso, dovrebbe essere installato prima di questo passaggio.
Ora, controlla se il sshd servizio è in esecuzione tramite il seguente comando:
$ sudo systemctl status sshdCome puoi vedere, il sshd il servizio è attivo (di corsa) e abilitato (si avvierà automaticamente all'avvio del sistema).
Se la sshd il servizio è non attivo (in esecuzione), avvialo manualmente con il seguente comando:
$ sudo systemctl start sshd
Se la sshd il servizio non è abilitato (non aggiunto all'avvio del sistema) nel tuo caso, aggiungilo manualmente all'avvio del sistema con il seguente comando:
$ sudo systemctl abilita sshd
Ora, crea un ansible utente e consentire l'accesso sudo senza password al ansible utente.
Per creare un ansible utente, eseguire il seguente comando:
$ sudo adduser --shell /bin/bash --gecos "" ansible
Digita una password per il ansible utente e premere
Ridigita la password e premi
Un ansible l'utente dovrebbe essere creato.
Ora, per consentire l'accesso sudo senza password al ansible utente, modificare il /etc/sudoers file con il seguente comando:
$ sudo visudo
Ora aggiungi la seguente riga a /etc/sudoers file.
ansible ALL=(ALL) NOPASSWD:ALLQuindi, salvare il file premendo
Ora, trova l'indirizzo IP dell'host Ansible 6f7c2 con il seguente comando:
$ hostname -IEcco, l'indirizzo IP nel mio caso è 192.168.20.167. Sarà diverso per te. Quindi, assicurati di sostituire questo indirizzo con il tuo modulo ora in poi.
Copia della chiave pubblica SSH nell'host Ansible
Dal computer in cui hai installato Ansible (ansible-pc), copia la chiave pubblica SSH nell'host Ansible 6f7c2 come segue:
$ ssh-copy-id [email protected]
Digitare sì e premi
Quindi, digita la password per il ansible utente e premere
La chiave SSH pubblica deve essere copiata nell'host Ansible 6f7c2.
Dovresti essere in grado di SSH nell'host Ansible 6f7c2 come utente ansible senza alcuna password, come puoi vedere dallo screenshot qui sotto:
$ ssh [email protected]
Dovresti anche essere in grado di eseguire i comandi sudo senza che ti venga richiesta alcuna password.
$ sudo ls /
Infine, chiudi la sessione SSH come segue:
$ uscita
Protezione degli host Ansible
Come la ansible l'utente può eseguire qualsiasi comando sudo senza che venga richiesta una password, abbiamo configurato l'accesso basato su chiave SSH per gli host Ansible. Ma puoi ancora SSH negli host Ansible come ansible utente che utilizza la password del ansible utente. Quindi, questo non è molto sicuro.
Per migliorare la sicurezza, eseguire il seguente comando sugli host Ansible per disabilitare l'accesso basato su password per il ansible utente:
$ sudo usermod -L ansible
Se in seguito decidi di abilitare l'accesso basato su password per il ansible utente, eseguire il seguente comando sull'host Ansible:
$ sudo usermod -U ansibleTest Ansible
Crea una nuova directory di progetto ~/progetto/ nella macchina Debian in cui hai installato Ansible (ansible-pc) utilizzando il seguente codice:
$ mkdir ~/progetto
Vai a ~/progetto/ directory utilizzando il seguente codice:
$ cd ~/progetto/
Crea un nuovo padroni di casa file nella directory del progetto come segue:
$ nano host
Ora, elenca gli indirizzi IP o i nomi DNS degli host Ansible (6f7c2 e 6b219 nel mio caso) in padroni di casa file:
192.168.20.167192.168.20.168
Al termine, salvare il file premendo by
Per testare, prova a eseguire il ping di tutti gli host utilizzando Ansible con il seguente codice:
$ ansible -i ./hosts all -u ansible -m pingNOTA: qui, il -tu l'opzione viene utilizzata per specificare il nome utente (ansible in questo caso) che Ansible utilizzerà per SSH negli host.
Come puoi vedere, Ansible può accedere a tutti gli host. Quindi, gli host sono pronti per l'automazione di Ansible.
Quindi, è così che installi Ansible su Debian 10 e configuri gli host Debian per l'automazione di Ansible. Grazie per aver letto questo articolo.