GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Ruoli Ansible e come usarli nei Playbook

Durante la scrittura dei file di playbook di Ansible, potresti aver notato che potresti riutilizzare parte del codice definito nei tuoi playbook esistenti. Ad esempio, è possibile riutilizzare il codice per l'installazione del server del database MariaDB su un host gestito con nomi host, utenti e password diversi per un altro host remoto. Ciò consente di risparmiare un sacco di tempo ed energia che sarebbero stati utilizzati per scrivere nuovi file di playbook da zero. Ed è qui che entra in gioco il concetto di ruoli Ansible.

Un ruolo ansible è un concetto di riutilizzo delle attività in singoli file che sono più facili da gestire e manipolare. Ogni ruolo fornisce una serie di attività, variabili e gestori, per citarne alcuni, necessari per la sua implementazione. I ruoli consentono agli utenti di riorganizzare strutture di playbook lunghe e complesse in file di playbook più semplici, brevi e più ordinati. Come accennato in precedenza, i ruoli sono pensati per essere riutilizzabili e invocare i ruoli nel file del playbook semplifica il codice ed elimina la duplicazione. Le attività ripetitive come l'installazione e la configurazione delle applicazioni possono essere impacchettate in file separati e riutilizzate su vari host gestiti.

In questa guida imparerai come creare e utilizzare i ruoli Ansible nei playbook. A scopo dimostrativo, creeremo un ruolo che installa il server Web Apache e configura il firewall per aprire la porta 80.

Come creare un ruolo Ansible

Inizieremo creando un semplice ruolo Ansible. Per creare un ruolo, usa semplicemente la sintassi del comando sotto dove myrole è il nome del ruolo.

$ ansible-galaxy init myrole

Ad esempio, per creare un ruolo chiamato test_role invocare il comando.

$ ansible-galaxy init  test-role

Dall'output, otteniamo che il comando genera un ruolo di test directory e, per impostazione predefinita, contiene alcune directory predefinite. Puoi utilizzare l'albero comando per elencarli come mostrato.

$ tree test-role

Diamo una breve panoramica di cosa contiene ogni directory

I "predefiniti Cartella ':questa directory contiene le variabili predefinite che saranno richieste dal ruolo. Queste variabili hanno la priorità più bassa e sono quindi abbastanza facili da ignorare.

I "file Cartella ':questa cartella comprende i file da copiare sull'host gestito o remoto.

I "gestori Cartella ':la directory contiene gestori che di solito vengono evocati dalla direttiva 'notify'. Puoi saperne di più sui gestori Ansible.

Il "meta Cartella ':è costituita dai metadati di un ruolo, ad esempio l'autore, le dipendenze, ecc.

Le "attività Cartella ':contiene un file YAML che definisce l'elenco delle attività che devono essere eseguite dal ruolo stesso. Contiene il main.yml file.

I "modelli Cartella ':la directory comprende file modello che possono essere modificati come ritenuti idonei per configurare il ruolo.

I "test Cartella ':integra i test con i file del playbook di Ansible.

Le "vari Cartella ':comprende le variabili che verranno successivamente utilizzate dal ruolo. ruolo. Queste variabili hanno una priorità maggiore rispetto a quelle dei "predefiniti ' directory.

Creeremo due ruoli a scopo dimostrativo:

Il git ruolo:installerà l'ultima versione di Git.

L'apache role- Questo installerà il server web Apache

Creali come segue:

$ sudo ansible-galaxy init git
$ sudo ansible-galaxy init apache

Successivamente, dobbiamo definire ogni ruolo modificando il main.yml file nelle 'attività ' in ogni ruolo. Iniziamo definendo il git ruolo.

$ sudo vim git/tasks/main.yml

Definisci l'attività per il ruolo git come mostrato.

Salva il main.yml file ed esci.

Quindi, definisci l'attività per il ruolo Apache.

$ sudo vim apache/tasks/main.yml

Specificare l'attività che installa il server Web Apache.

Allo stesso modo, salva il main.yml file ed esci.

Crea un file playbook e chiama i ruoli

Una volta definite le attività per ciascun ruolo in main.yml per ogni ruolo, crea un file playbook e fai riferimento ai ruoli come mostrato.

$ sudo vim roles_demo.yml

NOTA:

Devi specificare il percorso completo del ruolo nel playbook.

ruoli:

  • /percorso/del/ruolo

In questo esempio, i ruoli risiedono nella stessa directory del file del playbook e basta chiamarli semplicemente per nome.

Quindi, infine, esegui il file del playbook.

$ sudo ansible-playbook /etc/ansible/roles_demo.yml

Verrà fatto riferimento ai ruoli definiti nel file del playbook e verranno eseguite le rispettive attività. Qui, Ansible installa sia git che il server web Apache.

Puoi verificare l'installazione eseguendo i comandi mostrati.

$ git --version
$ apachectl -v

Come hai notato, il file del playbook è breve e facile da seguire poiché le attività sono state referenziate dai ruoli specificati nel file del playbook.

Riassumendo

I ruoli Ansible aiutano nell'organizzazione dei file del playbook e aiutano a evitare la duplicazione del codice. Possono essere riutilizzati e referenziati da altri file di playbook per eseguire attività simili su nodi diversi, risparmiando così tempo ed energia che avrebbero potuto essere utilizzati per scrivere nuovi playbook. Nel complesso, i ruoli semplificano il lavoro.


Ubuntu
  1. Come utilizzo Ansible e anacron per l'automazione

  2. Come installare e utilizzare TensorFlow su CentOS 7

  3. Come installare e configurare Ansible su Windows

  4. Come installare e utilizzare Ansible su Debian 11

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

Come creare e utilizzare fatti personalizzati in Ansible

Come definire e utilizzare i gestori in Ansible Playbook

Come installare e utilizzare Ansible su Debian 10

Come installare e utilizzare R su Ubuntu

Cos'è il PPA in Ubuntu Linux e come li uso

Schemi di colori in Vim:come cambiarli e usarli