Introduzione
Ansible è uno strumento Infrastructure as Code che consente di monitorare e controllare un gran numero di server da un'unica posizione centrale.
Il vantaggio principale di Ansible rispetto ad altri sistemi simili è che utilizza file di configurazione SSH e YAML e non richiede alcun software specializzato aggiuntivo.
Questo tutorial spiega come installare e configurare Ansible su Ubuntu 20.04.
Prerequisiti
- Un sistema che esegue Ubuntu 20.04
- Accesso alla riga di comando/finestra del terminale
Passaggio 1:configurazione di Ansible Control Node, Host e coppia di chiavi SSH
Prima di installare Ansible su Ubuntu, assicurati di aver impostato un paio di cose. La configurazione richiede un nodo di controllo Ansible e uno o più host Ansible.
Configurazione del nodo di controllo Ansible
Per configurare il nodo di controllo Ansible, accedi come utente root. Crea un altro utente (non root) con privilegi di amministratore, quindi aggiungi una coppia di chiavi SSH per il nuovo utente.
1. Come root, aggiungere un utente a livello di amministratore per il nodo di controllo. Usa il adduser
comando:
# adduser [username]
2. Definisci una password per l'account complessa e, facoltativamente, rispondi a un elenco di domande.
3. Premi Invio per saltare uno qualsiasi dei campi che non vuoi compilare al momento.
4. Il nuovo account è pronto. Ora, assegna l'accesso amministrativo all'account. Il comando seguente assegna i privilegi di superutente, consentendo all'account di utilizzare il sudo
comando:
# usermod -aG sudo [username]
Con il sudo
comando, il nuovo utente è ora in grado di eseguire attività amministrative. Accedi al nuovo account utente quando desideri utilizzare il nodo di controllo Ansible.
Configurazione di una coppia di chiavi SSH
1. Immettere il seguente comando nel terminale del nodo di controllo Ansible:
$ ssh-keygen
2. Premi Invio mostra il seguente output:
3. Il sistema visualizza l'output di seguito se è già stata impostata una coppia di chiavi SSH. Decidi se sovrascrivere la coppia di chiavi SSH esistente.
4. Infine, viene richiesto di fornire una passphrase. Consigliamo vivamente di aggiungere una passphrase efficace per evitare problemi di sicurezza in futuro:
L'output dovrebbe essere simile a quello seguente:
Configurazione di un host Ansible
Host disponibili sono server remoti monitorati e controllati dal nodo di controllo Ansible. Ciascun host deve avere la chiave SSH del nodo di controllo nella directory delle chiavi autorizzate dell'utente di sistema.
1. Il metodo più semplice per impostare una chiave pubblica SSH consiste nel copiarla utilizzando il ssh-copy-id
comando:
$ ssh-copy-id [email protected]_host
2. La prima volta che usi questo comando, potresti visualizzare il seguente messaggio:
Questo tipo di output è normale e compare quando ti connetti a un nuovo host remoto per la prima volta.
3. Per continuare, inserisci semplicemente yes
e premi Invio .
L'utilità ora ricerca la parte pubblica della coppia di chiavi generata durante il passaggio precedente.
4. Una volta trovata, inserisci la password dell'account host remoto.
5. Conferma la password premendo Invio . L'utilità carica la chiave pubblica sull'account dell'host remoto e mostra il seguente output:
Passaggio 2:installa Ansible
1. Assicurati che l'indice del pacchetto del tuo sistema sia aggiornato. Aggiorna l'indice del pacchetto con il comando:
$ sudo apt update
2. Quindi, installa Ansible su Ubuntu con il comando:
$ sudo apt install ansible
3. L'installazione ti chiederà di premere Y
per confermare, mentre il resto del processo di installazione viene automatizzato.
Una volta installato, il nodo di controllo Ansible può gestire gli host remoti.
Fase 3:impostazione del file di inventario
Configura un file di inventario degli host remoti per consentire ad Ansible di comunicare con loro.
1. Per accedere al file di inventario, utilizzare il seguente comando nel terminale del nodo di controllo:
$ sudo nano /etc/ansible/hosts
Il percorso predefinito per il file di inventario Ansible è /etc/ansible/hosts
, ma puoi anche fornire un percorso personalizzato utilizzando il -i
parametro:
2. Con il file di inventario aperto, ora puoi iniziare ad aggiungere host remoti che il tuo nodo di controllo gestirà. Il file di inventario Ansible predefinito inizia elencando consigli ed esempi generali sulla creazione di un elenco di host remoti:
3. Scorri fino alla fine del file per aggiungere nuovi host e ordinarli in categorie. Quando aggiungi host e categorie, utilizza il seguente formato:
[category name]
server_name ansible_host=[server_ip]
In questo esempio, abbiamo aggiunto un host remoto chiamato server1 utilizzando il suo indirizzo IP e ordinandolo nel [servers]
categoria:
4. Dopo aver aggiunto gli articoli all'inventario di Ansible, premi Ctrl +X e quindi premi Y per salvare il file di inventario.
5. Dopo aver impostato il file di inventario, puoi sempre ricontrollarlo utilizzando:
$ ansible-inventory --list -y
La finestra del terminale mostrerà un output che elenca l'infrastruttura degli host:
Fase 4:verifica della connessione
Il passaggio finale è assicurarsi che il nodo di controllo Ansible si connetta agli host remoti ed esegua i comandi.
1. Per testare la connessione con gli host, usa il seguente comando nel terminale del tuo nodo di controllo:
$ ansible all -m ping
2. In circostanze normali, questo sarà l'utente non root che abbiamo già impostato nel passaggio 1. Se per qualsiasi motivo hai bisogno di testare la connessione come utente root predefinito, puoi includere il -u
argomento con il comando:
$ ansible all -m ping -u root
L'esecuzione del comando produce un output simile al seguente:
3. Se ti connetti agli host remoti per la prima volta, Ansible ti chiederà di confermare che gli host sono autentici. Una volta richiesto, digita "sì" e premi Invio per confermare l'autenticità.
Quando tutti gli host remoti rispondono con un "pong", sei pronto per iniziare a eseguire comandi tramite il nodo di controllo Ansible.