Come creare un playbook Ansible in Ubuntu

Come creare un playbook Ansible in Ubuntu
Ansible è un potente strumento di automazione e gestione remota che consente di amministrare tutte le macchine remote. Ansible è multipiattaforma e può funzionare sulla maggior parte delle macchine senza requisiti per un software aggiuntivo. Ansible offre anche sicurezza utilizzando SSH e Python su macchine remote per eseguire attività specifiche.

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.

  • Ubuntu o una distribuzione basata su Debian - Questa è la macchina che utilizziamo per connetterci alle macchine remote usando SSH.
  • Una macchina remota da controllare con Ansible - Ti consigliamo di ottenere un sistema Linux come Debian Server.

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:

Sudo Apt-get Aggiornamento
sudo apt-get dist-upgrade -y

Passo 2
Quindi, utilizzare i comandi seguenti per installare Ansible su Ubuntu.

SUDO APT Installa software-Properties-Common
sudo add-apt-repository--yes-Aggiorna PPA: Ansible/Ansible
SUDO APT Installa Ansible -y

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:

ssh-keygen

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:

ssh-copy-id -i ~/.SSH/ID_RSA.pub utente@remote_ip

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 ~
mkdir anisble-workspace
cd ansible-workspace

Ora che abbiamo creato la directory Let's Crea il nostro primo playbook Ansible (il file dovrebbe finire con .estensione Yaml.

Vim Test.Yaml

All'interno del file YAML, aggiungi i seguenti contenuti.

---
- Host: tutto
diventa vero
diventare_method: sudo
compiti:
- Nome: "Mostra interfacce di rete"
Comando: ifconfig
Registro: dettagli
- Nome: "Ottieni dettagli sulle interfacce"
debug:
msg: "dettagli.stdout "

Salva il file ed eseguilo sul server usando il comando:

test ansible-playbook.Yaml

Il 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: variabile1
variabile2: valore

Con 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'
variabile2

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:

---
- Host: tutto
Diventa: sì
diventare_method: sudo
compiti:
- Nome: "Aggiorna cache e aggiornamento del sistema completo"
Apt:
update_cache: vero
cache_valid_time: 3600
force_apt_get: vero

I playbook sopra aggiorna la cache del repository. Questo corrisponde a un comando grezzo come:

Sudo Apt-get Aggiornamento

Ciò 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.Yaml

All'interno dello Yaml, inserisci il seguente playbook.

---
- Host: tutto
diventa vero
diventare_method: sudo
compiti:
- Nome: "Aggiorna pacchetti e aggiornamento"
Apt:
update_cache: vero
Aggiornamento: dist
force_apt_get: vero
- Nome: "Installa Apache Server"
Apt:
Nome: Apache2
Stato: ultimo
- Nome: "Crea root document"
file:
Path: "/var/www/html"
Stato: directory
Proprietario: "Www-Data"
Modalità: 0755
- Nome: "Abilita Apache sul firewall"
UFW:
Regola: consentire
Porta: 80
Proto: TCP
- Nome: "Riavvia il servizio Apache2"
servizio:
Nome: Apache2
Stato: riavviato

Salva il file ed eseguilo sul server remoto utilizzando il comando:

Ansible-Playbook --user = "Ubuntu" config_apache.Yaml

Dopo un'esecuzione riuscita, vedrai in output come mostrato.

Conferma che il server è in esecuzione utilizzando Curl come:

Curl 192.168.0.13

Dovresti 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!