GNU/Linux >> Linux Esercitazione >  >> Linux

Guida rapida ad Ansible per amministratori di sistema Linux

In questo articolo, discuto i prerequisiti per l'installazione di Ansible, l'installazione di Ansible utilizzando il server Satellite, la configurazione di Ansible per l'automazione, l'introduzione ai playbook, i file di inventario e il caso d'uso di Ansible. Dai un'occhiata al primo articolo, Demistificare Ansible per gli amministratori di sistema Linux, se non l'hai già fatto.

Prerequisiti per l'installazione di Ansible

Per utilizzare Ansible nel tuo ambiente, devi configurare un nodo di gestione (chiamato anche nodo di controllo ) dove installerai Ansible. Puoi installare Ansible su qualsiasi macchina con Python 2 (versione 2.7) o Python 3 (versioni 3.5 e successive). Con RHEL 7 abbiamo Python 2.7 installato per impostazione predefinita e con RHEL 8 abbiamo Python 3.6 per impostazione predefinita. Per utilizzare tutti i moduli Ansible, devi installare Python anche sui nodi gestiti. Per impostazione predefinita, Ansible utilizza SSH per comunicare con i nodi gestiti. I nodi gestiti possono anche utilizzare SFTP o SCP per la comunicazione e questo può essere modificato nel file di configurazione di Ansible (ansible.cfg ).

Se stai utilizzando RHEL Satellite per installare Ansible su un sistema RHEL 8, assicurati di aggiungere i repository per Red Hat Ansible Engine 2.9 per RHEL 8 x86_64 (RPM) dalla GUI di Satellite e sincronizzare i repository dalla CDN al Satellite. Sul nodo di controllo è necessario registrarsi al server Satellite, abilitare gli strumenti Satellite e abilitare il repository Ansible utilizzando i seguenti comandi:

# subscription-manager repos --enable satellite-tools-6.6-for-rhel-8-x86_64-rpms
Repository' satellite-tools-6.6-for-rhel-8-x86_64-rpms' is enabled for this system.

# subscription-manager repos --enable ansible-2.9-for-rhel-8-x86_64-rpms
Repository' ansible-2.9-for-rhel-8-x86_64-rpms' is enabled for this system.

Installazione di Ansible su RHEL

Per installare Ansible sul nodo di controllo RHEL 8 dopo la registrazione con il server Satellite, eseguire il comando yum install ansible . Questo comando installa sei pacchetti:

  1. Installa Ansible dal repository Ansible:
    1. Abile
  2. Installa dipendenze:
    1. sshpass
    2. Python3-markupsafe
    3. Python3-jinja2
    4. Python3-babel
  3. Installa una dipendenza debole:
    1. Python3-jmespath

Dopo l'installazione, esegui ansible --version comando per verificare la versione di Ansible installata.

# ansible --version

ansible 2.9.6

 config file = /etc/ansible/ansible.cfg

 configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']

 ansible python module location = /usr/local/lib/python3.6/site-packages/ansible-2.9.6-py3.6.egg/ansible

 executable location = /usr/local/bin/ansible

 python version = 3.6.8 (default, Oct 11 2019, 15:04:54) [GCC 8.3.1 20190507 (Red Hat 8.3.1-4)]

Dopo l'installazione, puoi apportare modifiche alle impostazioni Ansible predefinite modificando i parametri in ansible.cfg file.

[ Potrebbe piacerti anche leggere: Rinnovo il mio brivido al lavoro con Ansible ]

Configurazione di Ansible per l'automazione

Ora che Ansible è installato, è necessario configurare l'autenticazione basata su chiave SSH (che utilizza la crittografia asimmetrica) dal nodo di controllo ai nodi gestiti affinché Ansible funzioni senza problemi. Sarà necessario generare una coppia di chiavi sul nodo di controllo e trasferire la chiave pubblica ai nodi gestiti. Usa il comando ssh-keygen per generare la coppia di chiavi. Le chiavi sono memorizzate nella tua home directory all'interno del .ssh cartella. Le chiavi predefinite sono denominate id_rsa.pub (chiave pubblica) e id_rsa (chiave privata). Per abilitare l'autenticazione basata su chiave SSH sui nodi gestiti, eseguire il comando seguente sul nodo di controllo:

# ssh-copy-id <target user>@<IP address/Hostname of the managed node>

Si noti che ciò richiederà una password monouso per l'utente di destinazione sul nodo gestito. Il comando ssh-copy-id copierà la chiave pubblica del nodo di controllo nelle authorized_keys file sui nodi gestiti.

Una volta configurato, puoi aggiungere i nodi remoti a un file di inventario ed eseguire il test del ping utilizzando il seguente comando ad-hoc di Ansible:

# ansible all -m ping -i <inventory-file>

Ulteriori informazioni sui playbook

I playbook sono i file in cui vengono scritte le funzioni di Ansible. I playbook sono scritti in formato YAML. YAML sta per Yet Another Markup Language. I playbook sono una delle funzionalità principali di Ansible e indicano ad Ansible cosa eseguire. Sono come una lista di cose da fare per Ansible che contiene una serie di attività. I playbook sono gli elementi costitutivi di tutti i casi d'uso di Ansible. Puoi creare playbook Ansible modulari indipendenti per ogni azione. Puoi incorporare questi playbook modulari in un unico playbook principale utilizzando il modulo import_playbook . Ciò garantisce la riutilizzabilità dei playbook. Puoi utilizzare le variabili nel playbook e passare queste variabili dall'inventario Ansible, dai file inclusi e durante il runtime. Alcune delle caratteristiche principali di un playbook Ansible includono:

  • Possibilità di eseguire attività come utenti diversi in base al diventare metodo
  • Controlla dove eseguire ogni attività in base agli host nel tuo inventario
  • Specifica condizionali e loop nel tuo codice

Esempio:

Ulteriori informazioni sull'inventario

Inventario è l'elenco dei nodi che possono essere gestiti da Ansible. È possibile specificare singoli host gestiti o creare un gruppo di host nel file di inventario. Per ogni host gestito, puoi assegnare variabili che possono essere utilizzate dal playbook durante l'esecuzione di attività su quel particolare host. Il file di inventario predefinito è /etc/ansible/hosts , ma ti consigliamo di creare il tuo file di inventario e richiamarlo durante l'esecuzione del playbook utilizzando -i opzione di comando. I file di inventario possono essere in formato INI o YAML. Puoi mantenere un file di inventario statico o un elenco dinamico di host.

Esempio:

# cat hosts-b2b

[webservers]
b2bwebprod1 urlpath=https://b2bprod.abc.xyz
b2bwebprod2
b2bwebprod3

[appservers]
b2bappprod1
b2bappprod2
b2bappprod3
b2bappprod4
b2bappprod5

[dbservers]
b2bmasterdb
b2bslavedb

Caso d'uso ragionevole

Esaminiamo un caso d'uso Ansible per il monitoraggio del sistema. Possiamo creare playbook per varie attività di monitoraggio relative all'amministratore di sistema, tra cui:

  • Monitoraggio dell'utilizzo del file system ed e-mail di avviso se lo spazio su disco è utilizzato per più del 90%
  • Applicazione e disponibilità delle porte
  • Disponibilità del database collegando e interrogando il database
  • Disponibilità URL utilizzando uri modulo e avvisi e-mail se il codice di ritorno è maggiore di 200. Puoi anche utilizzare nuovi tentativi e funzioni di ritardo in uri modulo per essere doppiamente sicuri
  • Disponibilità del servizio, segnala se il servizio è inattivo e prova a riavviarlo
  • Controlla le versioni dei componenti per mantenere un inventario aggiornato
  • Monitoraggio del tempo di attività del sistema e invio di un avviso e-mail se un sistema non è accessibile

[ Hai bisogno di più su Ansible? Partecipa a un corso di panoramica tecnica gratuito di Red Hat. Ansible Essentials:Semplicità nell'automazione Panoramica tecnica. ] 

Concludi

Questo articolo offre una panoramica dell'installazione di Ansible, della configurazione di Ansible, della creazione di playbook e della gestione dell'inventario con esempi. Resta sintonizzato per altri articoli sull'automazione con Ansible.


Linux
  1. Una guida al terminale Linux per principianti

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

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

  4. Demistificare Ansible per gli amministratori di sistema Linux

  5. 80 strumenti di monitoraggio Linux per SysAdmins

Cos'è Ubuntu? Una guida rapida per principianti

30 Esercizi sulle autorizzazioni Linux per amministratori di sistema

40 utili comandi di rete Linux per i moderni amministratori di sistema

Guida per la configurazione del server SFTP in Linux

Una guida pratica per il comando chroot in Linux

Guida passo passo all'installazione di Bugzilla per Linux