GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Ansible Playbook:come creare e configurare i playbook

Introduzione

Ansible è uno strumento Infrastructure as Code che consente di gestire e monitorare numerosi server remoti utilizzando un unico nodo di controllo.

Con Ansible, puoi gestire i server remoti utilizzando i playbook. Questi playbook trasmettono istruzioni a server remoti e consentono loro di eseguire attività predefinite.

In questo tutorial, esamineremo cosa sono i playbook Ansible, come funzionano e come puoi crearli ed eseguirli.

Prerequisiti

  • Un sistema Linux (stiamo usando Ubuntu 20.04)
  • Accesso alla riga di comando/finestra del terminale
  • Ansible installato e configurato

Cos'è un Playbook Ansible?

Un playbook Ansible è un elenco di istruzioni per i lavori che vengono eseguiti automaticamente da computer remoti in una rete Ansible.

Un playbook Ansible è composto da giochi. Le riproduzioni sono un insieme orchestrato di attività che vengono completate una volta eseguito un playbook. Puoi aggiungere più riproduzioni a un playbook.

Le riproduzioni utilizzano i moduli per definire quali modifiche devono essere apportate per completare un'attività. Ogni modulo fornisce una struttura per una determinata categoria di lavori e può essere personalizzato utilizzando argomenti e variabili .

I playbook Ansible vengono salvati come file .yaml, il che li rende flessibili e facili da usare.

I playbook vengono utilizzati principalmente per:

  • Dichiarazione delle configurazioni.
  • Automatizzazione di alcune attività ripetibili che richiederebbero troppo tempo per essere eseguite manualmente.
  • Avvio di attività in modo sincrono o asincrono.

Variabili Ansible Playbook

I playbook Ansible utilizzano variabili per fornire flessibilità e facilità d'uso. Le variabili possono essere integrate (come le informazioni di sistema) o definito dall'utente .

In un playbook Ansible, le variabili vengono definite utilizzando vars parola chiave:

Nell'esempio sopra, definiamo il greeting variabile con il valore assegnato di Hello World! .

Per accedere al valore, inserisci il nome della variabile greeting tra doppie parentesi graffe:

Una volta eseguito, il playbook stampa il messaggio Hello World!

Oltre alle variabili con un singolo valore, esistono molti altri tipi di variabili Ansible. Utilizzo di variabili con array , assegna più valori a una variabile con la seguente sintassi:

vars:
  array_name:
    - value1
    - value2
    …
    - valueN

Accedi a un valore specifico utilizzando {{ array_name[value number] }} , ad esempio:

Variabili con dizionari combina più matrici di valori in un'unica variabile:

vars:
  array_name:
    dictionary_name1:
      item1: value1
      item2: value2
    dictionary_name2:
      item1: value1
      item2: value2

Infine, variabili speciali sono predefiniti da Ansible e non possono essere impostati dagli utenti. Utilizzare il comando seguente per ottenere un elenco di variabili speciali:

ansible -m setup hostname

Come scrivere un playbook Ansible?

Crea un playbook Ansible utilizzando qualsiasi editor di testo disponibile sul tuo sistema. Ad esempio, crea un playbook con Nano:

sudo nano /path/to/playbook/directory/playbook_name.yaml

I playbook Ansible seguono le regole di base della sintassi YAML.

Un playbook inizia con tre n-trattini (--- ), seguito dal nome del playbook, dal nome del gruppo di host remoti che esegue il playbook e da parametri aggiuntivi come become (esegui il playbook come amministratore).

La sezione successiva contiene tutte le variabili definite dall'utente. Inizia con vars tag nello stesso livello di indentazione della sezione precedente, seguito da un elenco di variabili nell'indentazione successiva.

Infine, l'elenco delle attività inizia con le tasks tag, con il livello di indentazione a seconda del tipo di attività e dei parametri utilizzati.

La sintassi YAML consente di utilizzare tre punti ( ) per terminare il playbook. Sebbene la maggior parte dei playbook finisca in questo modo, non è necessario che il playbook funzioni correttamente.

Sintassi Ansible Playbook

Alcuni elementi importanti della sintassi YAML da tenere a mente quando si scrivono playbook Ansible:

  • Quando componi gli elenchi, utilizza uno spazio tra i trattini (- ) e la voce dell'elenco.
  • Quando si utilizza la key: value modulo, i due punti devono essere seguiti da uno spazio.
  • I valori booleani possono utilizzare entrambi yes e no , oltre a true e false .
  • Utilizza lo spazio seguito da # per indicare un commento.

Esempio di playbook Ansible

Per questo esempio, creeremo un playbook nella cartella di installazione di Ansible:

sudo nano /etc/ansible/example_playbook.yaml

Questo playbook contiene i seguenti elementi:

  • --- :segnala l'inizio del playbook.
  • name :definisce il nome per il playbook Ansible.
  • hosts :definisce quali host eseguono il playbook. Nell'esempio sopra, il playbook viene eseguito su tutti gli host inclusi nel file di inventario.
  • become :indica all'host remoto di eseguire il playbook come amministratore. L'utilizzo di questo tag richiede l'inserimento della password di amministratore per l'host remoto durante l'esecuzione del playbook.
  • vars :Definisce le variabili – nel nostro caso, una variabile denominata greeting con il valore Hello World! .
  • tasks :l'elenco delle attività che il playbook deve eseguire. Nell'esempio sopra, la prima attività crea una directory chiamata example_playbook sull'host remoto. La seconda attività crea un nuovo file di testo in quella directory e inserisce il valore del greeting variabile come contenuto.
  • :segnala la fine del playbook.

Come viene eseguito un Playbook?

I playbook Ansible vengono eseguiti in ordine, dall'alto verso il basso. Questo vale sia per le singole rappresentazioni che per le attività elencate in quelle rappresentazioni.

Nell'esempio sopra, il playbook esegue le seguenti azioni, nell'ordine:

  1. Definisce un elenco di variabili.
  2. Crea una nuova cartella sull'host remoto.
  3. Crea un file di testo nella nuova cartella.
  4. Aggiunge il valore della variabile come contenuto del file.

Come eseguire un Playbook Ansible

Per eseguire un playbook Ansible, usa:

ansible-playbook /path/to/playbook/directory/playbook_name.yaml

Ai fini di questo articolo, utilizzeremo example_playbook.yaml con il -K argomento, che ci consente di inserire la password dell'utente root per l'host remoto ed eseguire il playbook come amministratore:

ansible-playbook /etc/ansible/example_playbook.yaml -K

Come verificare i Playbook

Esegui un playbook in modalità di verifica utilizzando il --check flag per verificarlo. Ciò ti consente di vedere le modifiche che apporterebbe il tuo playbook, senza effettivamente apportarle:

ansible-playbook /path/to/playbook/directory/playbook_name.yaml --check

Per una panoramica più dettagliata delle potenziali modifiche, utilizza la combinazione di --check e --diff bandiere:

ansible-playbook /path/to/playbook/directory/playbook_name.yaml --check --diff

Suggerimenti utili per Ansible Playbook

Esistono diversi modi per semplificare la lettura e l'utilizzo dei playbook Ansible:

Assegna sempre un nome alle riproduzioni e alle attività

Usa il name parola chiave per definire i nomi per i giochi e le attività. L'aggiunta di nomi brevi e semplici rende molto più facile sapere a colpo d'occhio cosa fa ogni gioco o attività.

Usa i commenti

Assicurati di aggiungere molti commenti, soprattutto quando definisci variabili e attività.

I commenti dettagliati aiutano a rendere il playbook ancora più chiaro e facile da capire. Aiutano anche chiunque altro utilizzi i tuoi playbook.

Formatta il Playbook per facilità d'uso

Anche se devi seguire le regole di indentazione affinché il playbook funzioni, puoi comunque utilizzare gli spazi bianchi (come le righe vuote tra le attività) per semplificare la lettura di un playbook.


Ubuntu
  1. Come installare e configurare Ansible su Ubuntu 18.04 LTS

  2. Come creare un Playbook Ansible

  3. Come installare e configurare Ansible su Fedora 35

  4. Come utilizzare Ansible per installare e configurare Redis 6 su Ubuntu 20.04

  5. Come utilizzare Ansible per installare e configurare Redis 6 su Debian 11

Come creare playbook Ansible per l'automazione IT

Come creare e configurare l'hotspot Wi-Fi in Ubuntu 17.10

Come definire e utilizzare i gestori in Ansible Playbook

Come creare ed eseguire file Ansible Playbook

Ruoli Ansible e come usarli nei Playbook

Come installare e configurare Ansible su Ubuntu