GNU/Linux >> Linux Esercitazione >  >> Linux

Una breve introduzione ai ruoli Ansible per l'amministrazione del sistema Linux

Ansible è una piattaforma di automazione open source che include gestione della configurazione, distribuzione delle applicazioni e orchestrazione dell'infrastruttura. È uno strumento di automazione popolare per gli ingegneri DevOps e per gli amministratori di sistema. Gli amministratori di sistema spesso affrontano un esaurimento della carriera a causa delle lunghe ore e dell'esecuzione di attività ripetitive su molti sistemi, ma Ansible aiuta a semplificare il completamento di queste attività. Attività come la creazione di utenti, la gestione dei servizi e l'installazione di software possono essere eseguite utilizzando Ansible. Ansible è basato su procedure anziché dichiarativo, il che significa che scrivi tutti i passaggi richiesti in un file YAML e poi li esegui in sequenza su tutti i sistemi di destinazione.

[ Potresti anche leggere: Utilizzo di un playbook Ansible per gestire gli aggiornamenti di workstation e server ]

Nodi

Nell'architettura Ansible, hai un nodo controller e nodi gestiti. Ansible è installato solo sul nodo controller. È uno strumento senza agenti e non deve essere installato sui nodi gestiti. Il controller e i nodi gestiti sono collegati tramite il protocollo SSH. Tutte le attività vengono scritte in un "playbook" utilizzando il linguaggio YAML. Ogni playbook può contenere più play, che contengono attività e le attività contengono moduli . I moduli sono script autonomi riutilizzabili che gestiscono alcuni aspetti del comportamento di un sistema. I moduli Ansible sono anche noti come plug-in attività o plug-in di libreria.

Ruoli

I playbook per compiti complessi possono diventare lunghi e quindi difficili da leggere e capire. La soluzione a questo problema è Ansible ruoli . Utilizzando i ruoli, puoi suddividere lunghi playbook in più file rendendo ogni playbook semplice da leggere e comprendere. I ruoli sono una raccolta di modelli, file, variabili, moduli e attività. Lo scopo principale dietro i ruoli è riutilizzare il codice Ansible. Gli ingegneri e gli amministratori di sistema DevOps dovrebbero sempre provare a riutilizzare il loro codice. Un ruolo Ansible può contenere più playbook. Può facilmente riutilizzare il codice scritto da chiunque se il ruolo è adatto a un determinato caso. Ad esempio, potresti scrivere un playbook per l'hosting Apache e quindi riutilizzare questo codice modificando il contenuto di index.html per modificare le opzioni per qualche altra applicazione o servizio.

Quella che segue è una panoramica della struttura dei ruoli di Ansible. È costituito da molte sottodirectory, come:

|-- README.md
|-- defaults
|-------main.yml
|-- files
|-- handlers
|-------main.yml
|-- meta
|-------main.yml
|-- tasks
|-------main.yml
|-- templates
|-- tests
|-------inventory
|-- vars
|-------main.yml

Inizialmente, tutti i file vengono creati vuoti utilizzando ansible-galaxy comando. Quindi, a seconda dell'attività, puoi utilizzare queste directory. Ad esempio, vars directory memorizza le variabili. Nelle tasks directory, hai main.yml , che è il playbook principale. I templates directory serve per memorizzare i modelli Jinja. I handlers directory è per la memorizzazione dei gestori.

Vantaggi dei ruoli Ansible:

  • Consenti il ​​riutilizzo dei contenuti
  • Rendi gestibili i grandi progetti

I ruoli Ansible sono directory strutturate contenenti sottodirectory.

Ma lo sapevi che Red Hat Enterprise Linux fornisce anche alcuni ruoli di sistema Ansible per gestire le attività del sistema operativo?

Ruoli di sistema

I rhel-system-roles il pacchetto è disponibile nel canale Extra (EPEL). I rhel-system-roles pacchetto viene utilizzato per configurare gli host RHEL. Ci sono sette rhel-system-roles predefiniti disponibile:

  • rhel-system-roles.kdump - Questo ruolo configura il servizio di ripristino da crash di kdump. Kdump è una funzionalità del kernel Linux ed è utile quando si analizza la causa di un crash del kernel.
  • rhel-system-roles.network - Questo ruolo è dedicato alle interfacce di rete. Questo aiuta a configurare le interfacce di rete nei sistemi Linux.
  • rhel-system-roles.selinux - Questo ruolo gestisce SELinux. Questo aiuta a configurare la modalità SELinux, i file, il contesto delle porte, ecc.
  • rhel-system-roles.timesync - Questo ruolo viene utilizzato per configurare NTP o PTP sul tuo sistema Linux.
  • rhel-system-roles.postfix - Questo ruolo è dedicato alla gestione dell'agente di trasferimento della posta Postfix.
  • rhel-system-roles.firewall - Come suggerisce il nome, questo ruolo riguarda la gestione della configurazione del firewall del sistema host.
  • rhel-system-roles.tuned - Tuned è un servizio di ottimizzazione del sistema in Linux per monitorare i dispositivi collegati. Quindi questo ruolo consiste nel configurare il servizio ottimizzato per le prestazioni del sistema.

I rhel-system-roles il pacchetto è derivato da ruoli di sistema Linux open source. Questo ruolo del sistema Linux è disponibile su Ansible Galaxy. I rhel-system-roles è supportato da Red Hat, quindi puoi pensarlo come se fosse rhel-system-roles sono a valle dei ruoli di sistema Linux. Per installare rhel-system-roles sulla tua macchina, usa:

$ sudo yum -y install rhel-system-roles
or
$ sudo dnf -y install rhel-system-roles

Questi ruoli si trovano in /usr/share/ansible/roles/ directory.

Questo è il percorso predefinito, quindi ogni volta che utilizzi i playbook per fare riferimento a questi ruoli, non è necessario includere esplicitamente il percorso assoluto. Puoi anche fare riferimento alla documentazione per l'utilizzo dei ruoli Ansible. Il percorso della documentazione è /usr/share/doc/rhel-system-roles

La directory della documentazione per ogni ruolo contiene informazioni dettagliate su quel ruolo. Ad esempio, il file README.md è un esempio di quel ruolo, ecc. La documentazione è autoesplicativa.

Quello che segue è un esempio di ruolo.

Esempio

Se desideri modificare la modalità SELinux della macchina localhost o di qualsiasi macchina host, utilizza i ruoli di sistema. Per questa attività, usa rhel-system-roles.selinux

Per questo compito, l'ansible-playbook si presenta così:

---

- name: a playbook for SELinux mode
 hosts: localhost
 roles:

- rhel-system-roles.selinux
 vars:

- selinux_state: disabled

Dopo aver eseguito il playbook, puoi verificare se la modalità SELinux è cambiata o meno.

[ Cerchi ulteriori informazioni sull'automazione dei sistemi? Inizia con The Automated Enterprise, un libro gratuito di Red Hat. ] 

Concludi

Questa breve introduzione ai ruoli Ansible dovrebbe essere sufficiente per iniziare a usarli nei tuoi playbook. Ricorda che Ansible ha lo scopo di snellire e semplificare le attività ripetitive e semplificare la vita del tuo amministratore di sistema.


Linux
  1. 10 moduli Ansible per l'automazione del sistema Linux

  2. Cos'è Linux? Una guida per utenti non tecnici

  3. Demistificare Ansible per gli amministratori di sistema Linux

  4. 8 suggerimenti per un'automazione affidabile del sistema Linux

  5. 10 libri essenziali sull'amministrazione del sistema Linux sia per principianti che per esperti

Introduzione di un amministratore di sistema Linux a cgroups

Guida rapida ad Ansible per amministratori di sistema Linux

Il mio viaggio nell'amministrazione del sistema Linux

Una breve introduzione ad Ansible Vault

Amministrazione di Network File System (NFS) su Linux

Webmin:uno strumento di amministrazione del sistema basato sul Web per Linux