Ansible Galaxy: tutto ciò che devi sapere
Pubblicato: 2022-09-29Ansible è un popolare strumento di gestione della configurazione open source. D'altra parte, Ansible Galaxy è un repository di ruoli Ansible.
Potresti avere solo una manciata di playbook come amministratore di sistema principiante. Man mano che le tue capacità di automazione migliorano e acquisisci maggiore familiarità con Ansible, imparerai tutte le migliori pratiche. Man mano che aumenti i tuoi playbook, ti renderai anche conto di quanto sia importante Ansible Galaxy.
Cos'è la Galassia Ansible?
Ansible Galaxy è un repository online open source basato sul Web per i contenuti Ansible (principalmente ruoli e raccolte). È quasi come se avessi creato qualcosa di nuovo e volessi condividerlo con gli altri.
Se hai problemi con l'automazione Ansible o hai bisogno di una soluzione preconfezionata da altri per avviare i tuoi progetti di automazione, Ansible Galaxy può aiutarti. Ad esempio, potresti avere ruoli, raccolte, moduli o plug-in. Molti membri della comunità hanno già caricato le proprie raccolte e ruoli Ansible.

Per eseguire attività come l'installazione di ruoli da Galaxy o qualsiasi SCM git, la creazione o la rimozione di ruoli o l'esecuzione di alcune attività sul sito Galaxy, possiamo utilizzare il comando 'ansible-galaxy'. Questo comando viene preinstallato con Ansible, quindi puoi usarlo immediatamente dopo aver installato Ansible.
Il progetto Galaxy è un progetto open source che ci consente di ospitare i nostri server Galaxy interni. Per utilizzare il server Galaxy interno, dovrai modificare la configurazione predefinita nel file Ansible.cfg
con l'indirizzo del server interno del Galaxy perché, per impostazione predefinita, utilizza l'indirizzo del server galaxy.ansible.com.
Panoramica Ansible
Ansible può essere descritto come un moltiplicatore che automatizza e ridimensiona infrastrutture di tutte le dimensioni. Può essere utilizzato per gestire configurazioni, orchestrare distribuzioni e altre funzioni. Ansible è molto facile da configurare. Ansible può essere utilizzato anche da un amministratore di sistema inesperto per automatizzare l'infrastruttura in poche ore.
Ansible automatizza utilizzando il protocollo SSH. Il meccanismo di controllo utilizza una connessione SSH per comunicare con i suoi host di destinazione (tipicamente host Linux). Gli amministratori di sistema di Windows possono comunque utilizzare Ansible per automatizzare i propri ambienti Windows con WinRM anziché SSH. La macchina di controllo deve ancora eseguire Linux.
Ansible può eseguire attività comuni di amministrazione di sistema come patch, aggiornamento, gestione di gruppi e utenti, provisioning e altre attività amministrative.
Ansible è oggi lo strumento di gestione, orchestrazione e distribuzione della configurazione più utilizzato e diffuso. La sua semplicità è uno dei suoi principali punti di forza. È semplice, potente, ma senza agenti. Ciò significa che un amministratore di sistema nuovo o entry-level può automatizzare l'infrastruttura in poche ore. Ansible consente un rapido ridimensionamento, efficienza e funzionalità incrociate.
Al lavoro su Ansible Galaxy
Quindi, apriamo il terminale ed eseguiamo alcuni comandi usando Ansible Galaxy. Ma prima, devi avere l'ultimo Ansible installato sul tuo sistema.
Quando hai installato l'ultimo Ansible sul tuo sistema, inserisci ansible-galaxy nel terminale e otterrai tutte le opzioni disponibili con il Galaxy.
ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy

Innanzitutto, puoi iniziare con il comando init e creare un ruolo. Qui sto creando un ruolo 'test'. Utilizzare il comando ls per verificare se il ruolo è stato creato correttamente. Il comando init crea anche i file necessari all'interno della directory del ruolo di test.
ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy init testing

Ansible Galaxy è una comunità grande e attiva in cui sono già stati creati molti ruoli che puoi utilizzare direttamente.
Di seguito è riportata la pagina che si aprirà quando navigherai su 'galaxy.ansible.com', o possiamo dire che è la home page del sito web 'Ansible Galaxy'. Possiamo fare clic su qualsiasi categoria popolare dalla home page o fare clic sul pulsante "Cerca" per ottenere più filtri per applicare una ricerca granulare.

Ad esempio, se stai cercando un ruolo del server MySQL, cercalo e fai clic sul pulsante del filtro. Puoi vedere che geerlingguy ha il massimo dei download; possiamo provare a installare questo ruolo. Fare clic su gerlingguy MySQL.

Riceverai quindi il comando di installazione per installare questo ruolo usando ansible-galaxy
.

Esegui il comando menzionato nell'istantanea sopra per scaricare e installare il ruolo del server MySQL sulla tua macchina.
ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy install geerlingguy.mysql

Se sai già quale ruolo cercare per un determinato autore, puoi utilizzare il comando di ricerca come mostrato di seguito.

ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy search elasticsearch --author geerlingguy

Comandi comuni di Ansible Galaxy
Il comando ansible-galaxy gestisce ruoli e raccolte utilizzando galaxy.ansible.com. Di seguito sono riportati alcuni comandi ansible-galaxy
molto utili che ogni amministratore di sistema utilizza di volta in volta:
-
ansible-galaxy list:
questo comando galaxy mostra un elenco di tutti i ruoli installati, con i relativi numeri di versione. -
ansible-galaxy remove:
Questo comando galaxy rimuove un ruolo installato sul sistema. -
ansible-galaxy info:
questo comando galaxy fornirà informazioni dettagliate su Ansible Galaxy. -
ansible-galaxy init
: questo comando galaxy può essere utilizzato per creare un modello di ruolo adatto per l'invio ad Ansible Galaxy. -
ansible-galaxy import
: questo comando galaxy richiede un accesso per importare un ruolo dal sito Web ufficiale della galassia.
I comandi precedenti (init, import, install, remove) possono essere utilizzati con il comando ansible-galaxy
collection per gestire le raccolte utilizzando Ansible galaxy.
Ora parliamo di ruoli e raccolte in Ansible Galaxy.
Crea ruoli con Ansible Galaxy
Ansible Galaxy è fondamentalmente un grande repository pubblico per i ruoli Ansible. I ruoli vengono forniti con READMEs
che spiegano l'utilizzo e le variabili. Galaxy ha molti ruoli in continua evoluzione e crescita.
Galaxy può aggiungere origini ruolo come GitHub usando git. Ansible Galaxy ci consente di creare ruoli Ansible utilizzando il comando ansible-galaxy
. Ansible-galaxy init può essere usato per inizializzare un nuovo ruolo galaxy oppure puoi usare il comando ansible-galaxy install <name of role>
per installare il ruolo.
Prima di poterli utilizzare nei playbook, è necessario scaricare il ruolo. Una volta inseriti nella directory predefinita /etc/ansible/roles
, puoi trovare esempi di ruoli.
Struttura dei ruoli ansible e suo significato
Di seguito sono riportati i file e le directory creati durante l'installazione di un ruolo:
- README.md è il file Leggimi che descrive il ruolo. Il file readme contiene tutti i dettagli sui parametri di input e l'esempio
yml
. - attività: tutte le attività possono essere arruolate dal ruolo nelle attività. Il punto di ingresso per il ruolo è Main.yml. È qui che inizia l'esecuzione. Questo file può contenere altri file.
- Gestori: questa categoria include gestori che possono essere utilizzati in questo ruolo o in qualsiasi altro ruolo.
- defaults – Le variabili predefinite per il ruolo.
- vars – Variabili più importanti delle impostazioni predefinite per il ruolo.
- File: questi file possono essere distribuiti utilizzando il ruolo.
- Modelli: questa sezione contiene modelli che possono essere utilizzati tramite il ruolo.
- meta: i metadati possono essere utilizzati per definire i ruoli in meta. Questo file dovrebbe includere anche tutte le dipendenze dei ruoli.
- Test: test CI da eseguire.
- libreria – Incorporamento di moduli o plugin nei ruoli. Non creato dal comando init. Puoi anche creare un modulo personalizzato in Python in questa cartella e quindi utilizzarlo nelle tue attività.
Crea raccolte con Ansible Galaxy
Ansible Galaxy è lo strumento migliore per gestire i ruoli ed è stato utilizzato per anni. Tuttavia, vedrai nuove funzionalità o modifiche in Ansible Galaxy. Ansible versione 2.2.8 ora include la funzione di raccolta.
Il contenuto Ansible può essere distribuito utilizzando raccolte. Sono utilizzati per impacchettare e distribuire playbook e ruoli, moduli e plug-in.
La seguente struttura è alla base delle raccolte:
collezione/ ├── documenti/ ├── galaxy.yml ├── plugin/ │ ├── moduli/ │ │ └── modulo1.py │ ├── inventario/ │ └── .../ ├── LEGGIMI.md ├── ruoli/ │ ├── ruolo1/ │ ├── ruolo2/ │ └── .../ ├── playbook/ │ ├── File/ │ ├── var/ │ ├── modelli/ │ └── compiti/ └── test/
Creazione di uno scheletro di raccolta
Per installare una raccolta sul tuo computer, puoi utilizzare il comando di installazione della raccolta ansible-galaxy.
In particolare, alcuni sottocomandi possono essere usati anche con la galassia ansible.
-
init
: crea una struttura di raccolta di base basata sul modello predefinito di Ansible'sle o sul tuo -
build
: crea un artefatto di raccolta che può essere caricato su Galaxy o sul tuo repository -
publish
: Galaxy pubblica un artefatto della raccolta incorporata -
install
: installa una o più raccolte
Conclusione
Ansible Galaxy è un ottimo modo per organizzare e pensare ai tuoi libri di ruolo in continua crescita. Ansible Galaxy ha circa 39.000 autori della community, 30.000 ruoli e 1656 raccolte che possono essere utilizzate per avviare rapidamente il nostro progetto di automazione. La guida per sviluppatori e per i collaboratori spiega come contribuire al codice Ansible Galaxy esistente, che è un progetto open source.
Potresti anche essere interessato alle attività di Sysadmin che puoi automatizzare con Ansible.