Supporta due metodi per la gestione di macchine remote: comandi ad hoc e playbook Ansible. I comandi ad hoc sono comandi grezzi che è possibile eseguire nel terminale per eseguire un'attività in una singola istanza.
Ansible Playbooks, d'altra parte, sono file scritti in lingua YAML. Contengono un singolo o un set di attività eseguite sulla macchina remota. A causa della natura rigorosa di Yaml, i playbook Ansible richiedono un'attenta attenzione nella sintassi generale.
Questo tutorial ti guiderà attraverso le basi della scrittura di playbook Ansible ed eseguire comandi su macchine remote. Per le illustrazioni in questa guida, imposteremo un semplice playbook che installa e configura Apache WebServer.
NOTA: Questo tutorial non ha lo scopo di insegnarti. Tutto quello che fa è fornire suggerimenti e linee guida per scrivere un playbook Ansible.
Prerequisiti
Per ottenere il valore massimo da questa guida, si consiglia di seguire. Le seguenti sono le cose che hai bisogno.
Una volta soddisfatti entrambi i requisiti di cui sopra, possiamo iniziare.
Come installare Ansible su Debian/Ubuntu
Il primo passo è garantire che abbiamo Ansible installato e in esecuzione sulla nostra macchina locale. Userò Ubuntu per questo tutorial.
Passo 1
Inizia aggiornando il sistema utilizzando i comandi di seguito:
Passo 2
Quindi, utilizzare i comandi seguenti per installare Ansible su Ubuntu.
Ora che l'abbiamo installato sul tuo computer locale, possiamo procedere a configurarlo.
Come configurare l'inventario ansible
Per gestire i server remoti utilizzando Ansible, è necessario raccontarlo. Lo facciamo creando un file di inventario contenente gli indirizzi IP o i nomi host delle macchine remote.
Per impostazione predefinita, il file di inventario host è in/etc/ansible/host.
Per imparare come creare un file di inventario host personalizzato in Ansible, considera uno dei nostri tutorial.
Modifica il file/etc/ansible/host e aggiungi l'indirizzo IP della macchina remota come mostrato di seguito:
Nell'inventario di esempio sopra, creiamo un gruppo di server (Linuxhint) che gestiremo in questo tutorial. Puoi avere altri gruppi come server Webs, Database_Servers, ecc.
Come impostare la coppia di tasti SSH
Ansible usa SSH per accedere alle macchine remote specificate ed esegue le attività definite nel playbook. Pertanto, per ridurre al minimo l'interazione e creare un flusso di lavoro completamente automatizzato, è meglio creare una coppia SSH per accedere alla macchina remota.
Passo 1
Il primo passo è generare una coppia di tasti SSH è l'utilizzo dello strumento SSH-Keygen. Usa il comando come:
Questo ti chiederà in modo interattivo di generare una coppia di tasti SSH. Per semplicità, accetta le impostazioni predefinite e non aggiungere una passphrase.
L'output per quello è sotto:
Passo 2
Successivamente, dobbiamo copiare la chiave SSH nelle macchine remote utilizzando lo strumento SSH-Copy-ID. Usa il comando come:
L'output è come mostrato di seguito:
Per saperne di più su come utilizzare il comando SSH-Copy-ID, usa questo: usa il comando SSH Copia ID.
Come scrivere un playbook Ansible
Come ho accennato in precedenza, i playbook Ansible usano YAML e quindi, è necessario osservare le rigide convenzioni sintattiche.
Se non hai familiarità con come scrivere i file yaml, considera il tutorial in questo link: leggi i valori dei file yaml
Per rimanere organizzati, creiamo una directory in cui conserveremo tutti i nostri playbook.
cd ~Ora che abbiamo creato la directory Let's Crea il nostro primo playbook Ansible (il file dovrebbe finire con .estensione Yaml.
Vim Test.YamlAll'interno del file YAML, aggiungi i seguenti contenuti.
---Salva il file ed eseguilo sul server usando il comando:
test ansible-playbook.YamlIl comando emetterà le informazioni sulle interfacce di rete sulle macchine remote come mostrato nell'immagine seguente:
Sebbene l'output non sia carino e non fornisca il modo più efficiente per raccogliere informazioni di rete usando Ansible, illustra giustamente come possiamo usare Ansible per eseguire comandi su host remoti.
Come registrare le variabili nei playbook Ansible
Per creare una variabile in un playbook Ansible, utilizziamo la parola chiave del registro seguito dal nome della variabile. Puoi anche usare il nome della variabile come chiave e impostare il suo valore usando la notazione del colon.
Ad esempio, due modi per registrare una variabile in Ansible.
Registro: variabile1Con la variabile definita, lo usi chiamando il suo nome all'interno di un set di due parentesi graffe come:
'Chiamare la variabile variabile1 all'interno di una stringa'Escalation del privilegio in ansible
Ansible consente inoltre di aggiornare i privilegi di un utente che utilizza il diventare. Il metodo Beving è un valore booleano che specifica che le attività all'interno del playbook dovrebbero funzionare come root.
Nel nostro primo playbook, abbiamo impostato il diventare vero e fissato il metodo di escalation dei privilegi come sudo.
Apt all'interno dei playbook
Ansible ci fornisce modi per gestire i pacchetti APT nel sistema basato su Debian. Utilizzando questo metodo, è possibile aggiornare, installare e disinstallare i pacchetti utilizzando il playbook Ansible.
Considera l'aggiornamento.file yaml mostrato di seguito:
---I playbook sopra aggiorna la cache del repository. Questo corrisponde a un comando grezzo come:
Sudo Apt-get AggiornamentoCiò può essere incredibilmente utile quando si installa software come Apache, Nginx, ecc., su un host remoto.
Esempio di utilizzo
Questa sezione creerà un playbook che installa un server Web Apache sul sistema Debian ed esegue la configurazione di base.
Questo playbook mostra vari pezzi in movimento e fornirà un buon esempio di come funzionano i playbook ansible.
Inizia creando il file yaml.
vim config_apache.YamlAll'interno dello Yaml, inserisci il seguente playbook.
---Salva il file ed eseguilo sul server remoto utilizzando il comando:
Ansible-Playbook --user = "Ubuntu" config_apache.YamlDopo un'esecuzione riuscita, vedrai in output come mostrato.
Conferma che il server è in esecuzione utilizzando Curl come:
Curl 192.168.0.13Dovresti ottenere il codice sorgente Apache predefinito (snippet mostrato di seguito).
E con ciò, abbiamo concluso questo tutorial.
Conclusione
È bene notare che la funzionalità di scrivere playbook dipenderà fortemente dalle attività necessarie per eseguire. Tuttavia, spero che questo tutorial ti abbia dato alcune linee guida e suggerimenti per crearne una tua.
Felice automazione!