GNU/Linux >> Linux Esercitazione >  >> Linux

Ansible Guide:Il comando ad hoc

Il comando Ad-Hoc è il comando ansible one-liner che esegue un'attività sull'host di destinazione. Ti consente di eseguire semplici attività su una riga su uno o un gruppo di host definiti nella configurazione del file di inventario. Un comando Ad-Hoc avrà solo due parametri, il gruppo di un host su cui si desidera eseguire l'attività e il modulo Ansible da eseguire.

Il comando Ad-Hoc ti dà più vantaggio per esplorare ansible stesso. Puoi eseguire attività senza prima creare un playbook, come il riavvio dei server, la gestione dei servizi, la modifica della configurazione della linea, la copia di un file su un solo host, l'installazione di un solo pacchetto.

In questo tutorial, mostrerò l'utilizzo di base del comando Ansible Ad-Hoc. Userò il comando Ad-Hoc per eseguire semplici attività che potrebbero essere necessarie per la tua base quotidiana come amministratore di sistema.

Prerequisiti

Per questa guida utilizzeremo due server LTS Ubuntu 18.04, Bionic Beaver. Il server ansible riceverà il nome host 'ansible-node' con l'indirizzo IP 10.5.5.20 e il server di provisioning con il nome host 'provision' e l'indirizzo IP 10.5.5.21.

Cosa faremo?

  1. Comando ad hoc di base
  2. Trasferimento di file
  3. Aggiorna e aggiorna
  4. Gestisci pacchetto
  5. Gestisci servizi
  6. Sistema di verifica

Utilizzo di base dei comandi ad hoc

In primo luogo, impareremo l'utilizzo di base di Ansible Ad-Hoc per la gestione dei server. Impareremo il comando di base di Ansible Ad-Hoc, utilizzando il comando Ad-Hoc con l'autenticazione della password ssh, l'escalation dei privilegi e utilizzando il comando Ad-Hoc contro un gruppo di host.

1. Comando di base

Il comando di base di ansible ad-hoc contro "tutti" gli host nel file di inventario e utilizzando il modulo "ping".

ansible all -m ping
  • Il primo parametro 'tutti' per tutti gli host nel file di inventario.
  • Il secondo parametro all'interno dell'opzione '-m' per il modulo, che esegue il modulo ping.

Ora otterrai il risultato come di seguito.

Un comando ad-hoc contro il server di provisioning è stato "SUCCESS" senza alcuna modifica apportata al server e otteniamo il risultato del modulo "ping" dal server di provisioning "pong".

2. Filtra gruppo host e host singolo

Ora puoi utilizzare il comando Ad-Hoc contro un gruppo di host che sono già definiti nel file di inventario. Puoi utilizzare il tuo file di inventario personalizzato o il file di inventario predefinito "/etc/ansible/hosts".

Di seguito è riportato un esempio per eseguire il comando ad-hoc sul gruppo di host chiamato 'hakase-testing' che sono già definiti nel file di configurazione dell'inventario predefinito.

ansible hakase-testing -m setup -a "filter=ansible_distribution*"

Se stai utilizzando il file di inventario personalizzato, aggiungi l'opzione "-i" dopo il nome del file di inventario.

ansible hakase-testing -i hosts -m setup -a "filter=ansible_distribution*"

Otterrai lo stesso risultato.

Ora, se desideri eseguire su un singolo host nella configurazione dell'inventario, puoi utilizzare il nome dell'host come di seguito.

ansible provision -m setup -a "filter=ansible_distribution*"

E il comando ad-hoc verrà eseguito solo sul server di "provisioning".

3. Utilizzo della password SSH

Ora eseguiremo un comando ad-hoc utilizzando l'autenticazione della password ssh richiesta. E per fare ciò, devi installare il pacchetto aggiuntivo chiamato 'sshpass' su 'ansible-node'.

Installa il pacchetto sshpass usando il comando apt di seguito.

sudo apt install sshpass -y

Ora esegui il comando ad-hoc e aggiungi l'opzione '--ask-pass' alla fine.

ansible hakase-testing -m ping --ask-pass

E ti verrà chiesta la 'Password SSH' per il server.

Digita la tua password ssh e il comando ad-hoc verrà eseguito sul server.

4. Escalation dei privilegi

Ansible fornisce funzionalità per l'escalation dei privilegi rispetto ai server. Se desideri eseguire il comando ad-hoc come utente non root, puoi utilizzare l'opzione '--become' per ottenere i privilegi di root e l'opzione '-K' per richiedere la password.

Esegui il comando ad hoc 'fdisk -l' come utente 'hakase' con l'opzione di privilegio '--become' e '-K' per richiedere la 'SUDO Password'.

ansible hakase-testing -m shell -a 'fdisk -l' -u hakase --become -K

Di seguito il risultato.

Trasferimento file

Ora utilizzeremo il comando Ad-Hoc per il trasferimento di file da e verso il server. Possiamo trasferire un file al server di provisioning con il modulo "copia" e scaricare il file dal server utilizzando il modulo "recupera".

1. Carica file sull'host

Per questo esempio, eseguiremo il comando ad-hoc e utilizzeremo il modulo 'copy' per caricare la configurazione sudoers per l'utente hakase nella directory '/etc/sudoers.d' nel gruppo 'hakase-testing'.

Esegui il comando ad hoc di seguito.

ansible hakase-testing -m copy -a 'src=/home/hakase/hakase-sudo.conf dest=/etc/sudoers.d/hakase owner=root mode=0644' -u hakase --become -K

Ora ti verrà richiesta la "Password SUDO" per l'utente hakase. Digita la password e otterrai il risultato come di seguito.

Il file è stato caricato nella directory di destinazione "destinazione" e ottieni il risultato "modificato" come "vero".

2. Scarica il file dall'host

Ora utilizzeremo un comando ad hoc con il modulo 'fetch' per scaricare il file dal server di provisioning al server 'ansible-node' locale.

Scarica il file di configurazione '/etc/sudoers.d/hakase' dal server 'provision' nella directory locale chiamata 'backup'.

ansible provision -m fetch -a 'src=/etc/sudoers.d/hakase dest=/home/hakase/backup/hakase-sudoers flat=yes'

E otterrai il file chiamato 'hakase-sudoers' nella directory 'backup'.

Passaggio 3:aggiornamento del repository e pacchetti di aggiornamento

Per aggiornare e aggiornare il repository dei server Ubuntu, possiamo utilizzare il comando ad-hoc con il modulo apt.

Aggiorna il repository sul test hakase di gruppo.

ansible hakase-testing -m apt -a 'update_cache=yes' --become

Ora aggiorna i repository e aggiorna tutti i pacchetti all'ultima versione utilizzando l'opzione 'upgrade=dist'.

ansible hakase-testing -m apt -a 'upgrade=dist update_cache=yes' --become

Attendi che tutti i pacchetti vengano aggiornati.

Gestisci pacchetti

Questo è molto utile quando stai cercando di creare ed eseguire il debug del tuo playbook. Perché a volte è necessario un pacchetto aggiuntivo da installare sul sistema. Quindi, questo comando ad hoc ti fornirà un modo semplice per installare quel pacchetto senza accedere a ciascun server.

1. Installa il pacchetto

Installa un singolo pacchetto usando il comando ad-hoc con il modulo apt come di seguito.

ansible hakase-testing -m apt -a 'name=nginx state=latest' --become

2. Rimuovi pacchetto

Rimuovi il pacchetto ed elimina tutta la configurazione relativa al pacchetto.

ansible hakase-testing -m apt -a 'name=nginx state=absent purge=yes' --become

3. Rimozione automatica

L'esempio seguente rimuove il pacchetto nginx ed elimina tutta la configurazione correlata, quindi rimuove tutti i pacchetti inutilizzati sul sistema.

ansible hakase-testing -m apt -a 'name=nginx state=absent purge=yes autoremove=yes' --become

Gestisci servizi

In questo passaggio, utilizzeremo il modulo di servizio sul comando ad-hoc per la gestione del servizio di sistema sul server di provisioning.

1. Avvia Servizi

Avvia il servizio nginx e aggiungilo all'ora di avvio.

ansible hakase-testing -m service -a 'name=nginx state=started enabled=yes' --become

Otterrai il risultato "modificato" e "abilitato" come "vero".

2. Riavvia il servizio

Se desideri riavviare il servizio, puoi utilizzare il seguente comando.

ansible hakase-testing -m service -a 'name=nginx state=restarted' --become

Il servizio nginx è stato riavviato.

3. Arresta un servizio

Per interrompere il servizio, cambia il valore "stato" in "arrestato".

ansible hakase-testing -m service -a 'name=nginx state=stopped' --become

Il servizio nginx sui server 'hakase-testing' è stato interrotto.

Controllo del sistema

Ora useremo il modulo 'shell' all'interno del comando ad-hoc. E faremo un semplice monitoraggio del sistema usando un semplice comando Linux attraverso l'ad-hoc di Ansible.

Innanzitutto, installa il pacchetto 'sysstat' su tutti i server utilizzando il comando ad hoc riportato di seguito.

ansible hakase-testing -m apt -a 'name=sysstat state=latest' --become

Attendi l'installazione del pacchetto 'sysstat'.

Una volta completato, sei pronto per controllare tutti i server.

1. Disco disponibile

Controlla il disco disponibile sulla partizione di root usando il comando fdisk.

ansible hakase-testing -m shell -a 'df -h /dev/sda2' --become

Cambia '/dev/sda2' con il tuo percorso.

2. Utilizzo della memoria RAM

Ora controlla l'utilizzo della memoria RAM su tutti i server usando il comando 'free -m'.

ansible hakase-testing -m shell -a 'free -m' --become

E ti verrà mostrato il risultato come di seguito.

3. Utilizzo della CPU

Verifica dell'utilizzo della CPU di tutti i server utilizzando il comando mpstat.

ansible hakase-testing -m shell -a 'mpstat -P ALL' --become

Il comando mpstat fa parte del pacchetto 'sysstat'.

4. Porte aperte

Controllo delle porte aperte su tutto il sistema utilizzando netstat tramite il comando ad-hoc.

ansible hakase-testing -m shell -a 'netstat -plntu' --become

5. Tempo di attività

Ora controlla il tempo di attività di ciascun server.

ansible hakase-testing -m shell -a 'uptime' --become

Linux
  1. Introduzione al comando alternatives in Linux

  2. Un'introduzione al comando diff

  3. Come utilizzare il comando basename?

  4. Una guida al comando "Trova" di Linux

  5. Una guida al comando "Top" di Linux

Padroneggia la riga di comando di Linux

Una guida per principianti alla navigazione nel filesystem Linux

Il comando select in Linux

Il comando timer in Linux

Una guida pratica per il comando chroot in Linux

Il comando apt:una guida pratica all'uso