Tutorial Ansible - Impara a scrivere playbook Ansible



In questo blog Tutorial Ansible imparerai come scrivere playbook Ansible, comandi ad hoc ed eseguire pratiche per distribuire Nginx sul tuo computer host.

Tutorial Ansible

Spero che tu abbia esaminato il mio blog precedente per imparare e le terminologie più utilizzate di Ansible. Nel caso in cui non l'hai fatto, dai un'occhiata in modo da poter ottenere una migliore comprensione di questo tutorial Ansible.Dovresti anche sapere che Ansible costituisce una parte cruciale di come strumento per la gestione della configurazione, l'implementazione e l'orchestrazione.

Consentitemi di darvi una panoramica di questo 'Tutorial Ansible':





Esercitazione su Ansible Playbook | Formazione DevOps | Edureka

Tutorial Ansible - Scrittura di playbook Ansible

I playbook in Ansible sono scritti in formato YAML. È un linguaggio di serializzazione dei dati leggibile dall'uomo. Viene comunemente utilizzato per i file di configurazione. Può anche essere utilizzato in molte applicazioni in cui vengono archiviati i dati.



Per Ansible, quasi tutti i file YAML iniziano con un elenco. Ogni elemento nell'elenco è un elenco di coppie chiave / valore, comunemente chiamato 'hash' o 'dizionario'. Quindi, dobbiamo sapere come scrivere elenchi e dizionari in YAML.

Tutti i membri di un elenco sono righe che iniziano con lo stesso livello di rientro che iniziano con un '-' (trattino e spazio). Sono possibili strutture di dati più complicate, come elenchi di dizionari o dizionari misti i cui valori sono elenchi o una combinazione di entrambi.

per esempio. Per un elenco dei dipartimenti in edureka:



reparti: - marketing - vendite - soluzioni - scrittura di contenuti - supporto - prodotto

Ora lascia che ti dia un esempio di dizionario:

-USA -continente: Nord America -capitale: Washington DC -popolazione: 319 milioni

Host e utenti:

Per ogni gioco in un playbook, puoi scegliere quali macchine nella tua infrastruttura scegliere come target e quale utente remoto completare le attività. Per includere host nell'inventario Ansible, utilizzeremo gli indirizzi IP delle macchine host.

cos'è lo spazio dei nomi in c ++

Generalmente gli host sono un elenco di uno o più gruppi o modelli host, separati da due punti. L'utente remoto è solo il nome dell'account utente.

Variabili:

Ansible utilizza variabili definite in precedenza per consentire una maggiore flessibilità nei playbook e nei ruoli. Possono essere utilizzati per scorrere un insieme di valori dati, accedere a varie informazioni come il nome host di un sistema e sostituire determinate stringhe nei modelli con valori specifici.

Ansible definisce già un ricco set di variabili, individuali per ogni sistema. Ogni volta che Ansible verrà eseguito su un sistema, tutti i fatti e le informazioni sul sistema vengono raccolti e impostati come variabili.

Ma c'è un file regola per denominare le variabili. I nomi delle variabili devono essere lettere, numeri e trattini bassi. Le variabili dovrebbero sempre iniziare con una lettera. Per esempio. wamp_21, port5 è nomi di variabili validi, mentre 01_port, _server non sono validi.

Compiti:

Le attività consentono di suddividere bit di criteri di configurazione in file più piccoli. L'attività include il pull da altri file. I compiti in Ansible seguono praticamente il significato inglese di esso.

Ad esempio: installazione, aggiornamento ecc.

Gestori:

I gestori sono proprio come le normali attività in un playbook Ansible, ma vengono eseguiti solo se l'attività contiene una direttiva di notifica e indica anche che ha cambiato qualcosa. Ad esempio, se un file di configurazione viene modificato, l'attività che fa riferimento al file di configurazione potrebbe inviare una notifica a un gestore di riavvio del servizio.

Lascia che ti dia un esempio di un playbook che avvierà il programma del server httpd di Apache:

----host: server web di chi: http_port: 80 max_clients: 200 remote_user: radice compiti: - nome: assicurati che apache sia all'ultima versione yum: nome = stato httpd = più recente - nome: scrivi il file di configurazione di apache modello: src = / srv / httpd.j2 dest = / etc / httpd.conf notificare: - riavviare apache - nome: assicurati che apache sia in esecuzione (e abilitalo all'avvio) servizio: nome = stato httpd = avviato abilitato = sì gestori: - nome: riavviare apache servizio: nome = stato httpd = riavviato

Spero che l'esempio ti metta in relazione con tutta la descrizione dei componenti del playbook che ho menzionato sopra. Se ancora non ti è chiaro, non preoccuparti, tutti i tuoi dubbi saranno chiari nella parte successiva di questo blog.

Si tratta di playbook. I playbook che verranno scritti da te. Ma Ansible ti offre anche un'ampia gamma di moduli che puoi utilizzare.

Tutorial Ansible - Moduli

I moduli in Ansible sono idempotenti. Dal punto di vista del servizio RESTful, affinché un'operazione (o una chiamata di servizio) sia idempotente, i client possono effettuare la stessa chiamata ripetutamente producendo lo stesso risultato. In altre parole, fare più richieste identiche ha lo stesso effetto che fare una singola richiesta.

Esistono diversi tipi di moduli in Ansible

  • Moduli principali
  • moduli extra

Moduli principali

Si tratta di moduli che il team principale di Ansible mantiene e che verranno sempre forniti con Ansible stesso. Riceveranno anche una priorità leggermente superiore per tutte le richieste rispetto a quelle nei repository 'extra'.

Il sorgente di questi moduli è ospitato da Ansible su GitHub in Ansible-modules-core.

Moduli extra

Questi moduli sono attualmente forniti con Ansible, ma potrebbero essere spediti separatamente in futuro. Inoltre, sono per lo più mantenuti dalla comunità Ansible. I moduli non core sono ancora completamente utilizzabili, ma potrebbero ricevere tassi di risposta leggermente inferiori per problemi e richieste pull.

I moduli 'extra' popolari possono essere promossi a moduli principali nel tempo.

La fonte per questi moduli è ospitata da Ansible su GitHub in Ansible-modules-extras.

Ad esempio: quello del modulo extra nei moduli di gestione remota è il modulo ipmi_power, che è un alimentatore per le macchine remote. Richiede python 2.6 o successivo e pyghmi per funzionare.

Puoi usare questo modulo scrivendo un comando ad hoc come quello che ho scritto di seguito:

ipmi_power: name = 'test.domain.com' user = 'localhost' password = 'xyz' state = 'on'

Tutorial Ansible - Valori di ritorno

I moduli Ansible normalmente restituiscono una struttura di dati che può essere registrata in una variabile o visualizzata direttamente quando emessa dal programma Ansible. Ogni modulo può facoltativamente documentare i propri valori di ritorno univoci.

Alcuni esempi di valori restituiti sono:

  • modificato: restituisce un valore booleano ogni volta che l'attività apporta modifiche.
  • fallito: restituisce un valore booleano, se l'attività non è riuscita
  • msg: restituisce una stringa con un messaggio generico inoltrato all'utente.

Tutorial Ansible - Comandi AdHoc

I comandi ad hoc sono semplici comandi di una riga per eseguire alcune azioni. I moduli in esecuzione con i comandi Ansible sono comandi ad hoc.

Per esempio:

host ansible -m netscaler -a 'nsc_host = nsc.example.com user = apiuser password = apipass' 

Il comando adhoc di cui sopra utilizza il modulo netscaler per disabilitare il server. Ci sono centinaia di moduli disponibili in Ansible da cui puoi fare riferimento e scrivere comandi ad hoc.

Bene, basta con tutte le spiegazioni teoriche, lascia che ti spieghi Ansible con alcune mani.

Esercitazione su Ansible - Pratica

Scriverò un playbook per installare Nginx sul mio nodo / macchina host.

Cominciamo :)

Passo 1: Connettiti ai tuoi host usando SSH. Per questo, è necessario generare una chiave SSH pubblica.

Usa il comando seguente:

ssh-keygen

Genera chiave SSH - Tutorial Ansible - Edureka

Come puoi vedere nell'istantanea sopra, il comando ssh-keygen ha generato una chiave SSH pubblica.

Passo 2: Il tuo prossimo compito è copiare la chiave SSH pubblica sui tuoi host. Per farlo, usa il comando seguente:

ssh-copy-id -i root @

L'istantanea sopra mostra la chiave SSH che viene copiata negli host.

Passaggio 3: Elenca gli indirizzi IP dei tuoi host / nodi nel tuo inventario.

Usa il seguente comando:

vi / etc / ansible / hosts

Questo aprirà un editor vi in ​​cui puoi elencare gli indirizzi IP dei tuoi host. Questo ora è il tuo inventario.

Passaggio 4: Eseguiamo il ping per assicurarci che sia stata stabilita una connessione.

L'istantanea sopra conferma che è stata stabilita la connessione tra la macchina di controllo e l'host.

Passaggio 5: Scriviamo ora un playbook per installare Nginx sulla macchina host. Puoi scrivere il tuo playbook nell'editor vi. Per questo, crea semplicemente il tuo playbook, usando il comando:

vi

L'istantanea sottostante mostra il mio playbook per installare Nginx scritto in formato YAML.

I compiti di un playbook sono definiti in YAML come un elenco di dizionari ed eseguiti dall'alto verso il basso. Se disponiamo di più host, viene provata ogni attività per ogni host prima di passare a quello successivo. Ogni attività è definita come un dizionario che può avere più chiavi, come 'nome' o 'sudo', che indicano il nome dell'attività e se richiede privilegi sudo.

Una variabile porta del server è impostato che ascolta sulla porta TCP 8080 per le richieste in arrivo.

Qui, la prima attività è ottenere il pacchetto necessario per l'installazione di Nginx e quindi installarlo.Internamente, Ansible verificherà se la directory esiste e la creerà se non lo è, altrimenti non farà nulla.

Il prossimo compito è configurare Nginx.In Nginx, i contesti contengono i dettagli di configurazione.

Qui, il modello è un file che puoi distribuire sugli host. Tuttavia, i file modello includono anche alcune variabili di riferimento estratte da variabili definite come parte di un playbook Ansible o fatti raccolti dagli host. I fatti contenenti i dettagli di configurazione vengono estratti da una directory di origine e copiati in una directory di destinazione.

I gestori qui definiscono l'azione da eseguire solo dopo la notifica delle attività o dei cambiamenti di stato. In questo playbook, abbiamo definito, notifica: riavvia il gestore Nginx che riavvierà Nginx una volta che i file e i modelli saranno stati copiati sugli host.

Ora salva il file ed esci.

Passaggio 6: Ora eseguiamo questo playbook, utilizzando il comando seguente:

ansible-playbook .yml

unire l'ordinamento c ++ esempio

Possiamo vedere nello screenshot sopra che il nostro compito viene eseguito dall'installazione di Nginx.

Passaggio 7: Controlliamo se Nginx è installato sul mio computer host. Usa il comando seguente:

ps waux | grep nginx

Puoi vedere nello screenshot qui sopra, che sono in esecuzione diversi ID di processo 3555 e 103316, il che garantisce che Nginx sia in esecuzione sulle tue macchine host.

Congratulazioni! Hai distribuito con successo Nginx sul tuo host utilizzando i playbook Ansible. Spero che ti sia piaciuto leggere questo blog Tutorial Ansible. Per favore fatemi sapere se avete domande nella sezione commenti qui sotto.

Se hai trovato questo ' Tutorial Ansible 'Rilevante, controlla il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Il corso di formazione sulla certificazione DevOps Edureka aiuta gli studenti ad acquisire esperienza in vari processi e strumenti DevOps come Puppet, Jenkins, Ansible, Nagios e Git per l'automazione di più passaggi in SDLC.