Ansible è un moderno strumento di automazione open source che semplifica la configurazione e la gestione dei server remoti. Sebbene altri strumenti di automazione possano corrispondere all'usabilità di Ansible, sono spesso troppo complessi di uno strumento di automazione di base.
Ansible, d'altra parte, è semplice e facile da usare per la maggior parte degli utenti. Utilizza il formato YAML per specificare le configurazioni e le attività del server eseguite su macchine remote. Offre anche un'ottima funzione di sicurezza utilizzando SSH come modalità di autenticazione predefinita.
Tuttavia, in alcuni casi, potresti non aver configurato le chiavi SSH su un host remoto e quindi è necessario specificare esplicitamente il nome utente e la password
In tal caso, questa guida discuterà della creazione di playbook di base e di eseguirli su un host remoto che non ha le chiavi SSH configurate.
Installazione di Ansible
Prima di poter usare Ansible per gestire le tue macchine remote, è necessario installarlo sulla macchina, che funge da nodo di controllo.
Nel mio esempio, mostrerò come installarlo su Rehl/CentOS e Fedora, nel qual caso tutto ciò che devo fare è usare il comando:
$ sudo dnf installa ansible
Questo comando installerà Ansible sulla tua macchina, dandoti tutti gli strumenti per controllare tutte le tue macchine remote da una singola posizione. Il prossimo passo è impostare il file host.
Impostazione dell'inventario degli host Ansible
In Ansible, un inventario è un file contenente informazioni sui tuoi host remoti che saranno sotto la direzione di Ansible. Gli host nel file di inventario possono essere organizzati in gruppi e sottogruppi e specificati con un indirizzo IP della macchina remota o del nome host.
Per aggiungere o rimuovere gli host, modificare il file situato in/etc/ansible/host.
$ sudo vim/etc/ansible/host
NOTA: Il file host predefinito potrebbe non essere incluso per impostazione predefinita in alcune installazioni. Crea semplicemente uno se non esiste nessuno.
All'interno del file host, aggiungi le voci come:
[Myservers]
192.168.0.20
192.168.0.13
Quanto sopra definisce un gruppo chiamato Myservers e i loro indirizzi IP corrispondenti. Assicurati di modificare gli indirizzi IP sopra sugli indirizzi IP degli host.
Connessione di prova
Una volta impostato il tuo file di inventario, è meglio verificare se i tuoi host sono online e possono ricevere comandi da Ansible. Lo facciamo chiamando il modulo ping ansible. Sul nodo locale Ansible, usa il comando mostrato di seguito:
$ ansible all -m ping -u ubuntu - -pass
Questo utilizzerà il nome utente Ubuntu e chiederà la password SSH. Sentiti libero di cambiare il nome utente in qualsiasi utente desiderato sulla macchina remota. Se l'host remoto è attivo e si fornisce la password SSH corretta, è necessario vedere una risposta come:
192.168.0.7 | Success =>
"Ansible_Facts":
"scoperto_interpreter_python": "/usr/bin/python3"
,
"cambiato": falso,
"ping": "pong"
Riepilogo rapido
Come puoi vedere dall'esempio sopra, in Ansible, per specificare il nome utente e la password da utilizzare per i tuoi host remoti, utilizziamo il -u [nome utente] e -ash -pass per la password.
Ad esempio, per utilizzare l'account root come accesso ansible, utilizzare il comando come:
$ ansible all -m ping -u root - -pass -pass
NOTA: È l'ideale per utilizzare il nome utente e la password come modalità di autenticazione in Ansible. Usa i tasti SSH se possibile.
Conclusione
In questo tutorial, abbiamo discusso di come installare e creare host Ansible. Abbiamo anche trattato come specificare il nome utente e la password ansible come modalità di autenticazione. Tutto questo può tornare utile se non hai configurato i tasti SSH sulla macchina remota.