Topologia di rete:
qui, il linuxhint-711ea è un Ubuntu 20.04 LTS macchina dove installerò Ansible.
Quindi, configurerò gli host host1 (indirizzo IP 192.168.20.162) e ospite2 (indirizzo IP 192.168.20.153) per l'automazione di Ansible ed eseguire comandi su di essi utilizzando Ansible dal linuxhint-711ea macchina.
chiamerò semplicemente host1 e ospite2 come host Ansible in questo articolo.
Installazione di Ansible:
Puoi facilmente installare Ansible su Ubuntu 20.04 LTS dal repository ufficiale dei pacchetti di Ubuntu.
Innanzitutto, aggiorna la cache del repository del pacchetto APT con il seguente comando:
$ sudo apt update
La cache del repository dei pacchetti APT dovrebbe essere aggiornata.
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.
Generazione della chiave SSH:
Ora devi generare una chiave SSH sul computer in cui hai installato Ansible.
Per generare una chiave SSH, esegui il seguente comando:
$ ssh-keygen
Ora premi
stampa
stampa
Dovrebbe essere generata una chiave SSH.
Configurazione di host Ubuntu per Ansible Automation:
In questa sezione, ti mostrerò come configurare un host Ubuntu (host1) per l'automazione Ansible. Se hai più di un host che desideri automatizzare utilizzando Ansible, ripeti lo stesso processo su ciascuno degli host.
Gli host Ubuntu Ansible (che si desidera configurare per l'automazione Ansible) devono avere il pacchetto server SSH installato.
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.
Ora, controlla se il sshd servizio è in esecuzione con 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) nel tuo caso, avvialo manualmente con il seguente comando:
$ sudo systemctl start sshdSe 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 sshdOra, configura il firewall per consentire l'accesso SSH con il seguente comando:
$ sudo ufw allow ssh
Dovresti anche creare un ansible utente e consentire l'accesso sudo senza password al ansible utente.
Per creare un ansible utente, eseguire il seguente comando:
$ sudo adduser ansible
Ora, digita una password per il ansible utente e premere
Ora, ridigita la password e premi
Ora premi
Ora premi
Ora premi
Ora premi
Ora premi
Ora digita sì e poi premere
Un ansible l'utente dovrebbe essere creato.
Ora, configura l'accesso sudo senza password al ansible utente con il seguente comando:
$ echo "ansible ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ansible
Ora, trova l'indirizzo IP dell'host Ansible (host1) con il seguente comando:
$ hostname -IEcco, l'indirizzo IP nel mio caso è 192.168.20.162. Sarà diverso per te. Quindi, assicurati di sostituirlo con il tuo modulo ora in poi.
Ora, dal computer in cui hai installato Ansible, copia la chiave pubblica SSH sull'host Ansible (host1) come segue:
$ ssh-copy-id [email protected]
Digitare sì e premi
Ora, digita la password per il ansible utente e premere
La chiave pubblica SSH deve essere copiata in host1.
Ora disabilita l'accesso basato su password per il ansible utente con il seguente comando:
$ sudo usermod -L ansible
Ora puoi solo SSH nell'host Ansible (host1) come ansible utente senza alcuna password dal computer da cui hai copiato la chiave pubblica SSH (in questo caso, il computer dove hai installato Ansible). Ma non sarai in grado di SSH nell'host Ansible (host1) come ansible utente da qualsiasi altro computer. Ho configurato gli host Ansible in questo modo per motivi di sicurezza. Come la ansible l'utente non ha bisogno di alcuna password per l'esecuzione di comandi amministrativi, è rischioso consentire l'accesso basato su password per il ansible utente.
Ora dovresti essere in grado di eseguire SSH nell'host ansible host1 dal computer in cui hai installato Ansible come segue:
$ ssh [email protected]
Come puoi vedere, sono in grado di accedere all'host Ansible (host1) come utente ansible senza alcuna password. Quindi, l'host Ansible (host1) è pronto per l'automazione Ansible.
Se per qualche motivo, desideri consentire l'accesso basato su password per il ansible utente di nuovo, esegui il seguente comando nell'host Ansible (host1):
$ sudo usermod -U ansible
Puoi configurare tutti gli host che desideri per l'automazione di Ansible allo stesso modo.
In questo articolo ho configurato solo 2 host, host1 e ospite2 per la dimostrazione.
Test Ansible:
Ora crea una nuova directory di progetto ~/ansible-demo/ nel computer in cui hai installato Ansible come segue:
$ mkdir ~/ansible-demo
Ora vai a ~/ansible-demo/ directory come segue:
$ cd ~/ansible-demo/
Ora, crea un nuovo padroni di casa file nella directory del progetto come segue:
$ nano host
Ora, digita gli indirizzi IP o i nomi DNS degli host Ansible (host1 e ospite2 nel mio caso) in padroni di casa file come segue:
192.168.20.162192.168.20.153
Ora salva il file premendo
Ora, prova a eseguire il ping di tutti gli host utilizzando Ansible come segue:
$ ansible tutto -i ./hosts -u ansible -m pingNOTA: Qui, l'opzione -u viene utilizzata per specificare il nome utente (ansible in questo caso) che Ansible utilizzerà per SSH negli host.
Come puoi vedere, tutti gli host possono essere sottoposti a ping. Quindi, gli host sono pronti per l'automazione di Ansible.
Allo stesso modo, puoi eseguire qualsiasi comando negli host utilizzando Ansible come segue:
$ ansible tutto -i ./hosts -u ansible -m shell -a 'echo "$(hostname) - $(hostname -I)"'
Come puoi vedere, il comando è stato eseguito correttamente in ciascuno degli host e viene visualizzato l'output.
Quindi, ecco come installi Ansible su Ubuntu 20.04 LTS e configura Ubuntu 20.04 Host LTS per l'automazione Ansible. Grazie per aver letto questo articolo.