Esecuzione del codice remoto utilizzando il modulo di comando Ansible

Esecuzione del codice remoto utilizzando il modulo di comando Ansible
Per quelli di voi che lavorano nel campo e in rete, lavorare sui server deve far parte della tua routine quotidiana.

Configurazione di server e applicazioni diversi manualmente può essere piuttosto una seccatura se ci sono molti sistemi. Fortunatamente, il software di automazione e i framework fanno il lavoro molto più facilmente.

Utilizzando queste applicazioni, è possibile automatizzare completamente il processo di gestione e configurazione utilizzando solo poche righe di codice. Quando si tratta di automazione di qualsiasi tipo, Ansible fa il trucco!

Ansible è uno strumento con una pletora di funzionalità. Parlare di tutti loro in un'unica guida sarebbe ingiusta, poiché ciascuna di queste caratteristiche merita una guida.

Questa guida è un tutorial dettagliato sul modulo di comando Ansible. Esamineremo le basi del modulo, insieme alla sintassi e alle caratteristiche, con l'aiuto di alcuni esempi.

Qual è il modulo di comando Ansible?

Come suggerisce il nome, il modulo di comando consente a un server/host remoto di eseguire comandi diversi. Questi utenti remoti sono indicati come nodi in una rete.

Il modulo di comando Ansible consente di eseguire più comandi su questi nodi. Questi nodi possono esistere come server indipendenti o parti di un gruppo. Detto questo, ci sono alcune limitazioni che dovresti sapere.

Limitazioni del modulo di comando

Il modulo di comando può essere utilizzato per l'esecuzione di semplici comandi di base per la shell. L'unica limitazione è che non può essere utilizzato per eseguire comandi più complessi.

Il modulo di comando Ansible non può eseguire più comandi in una singola istruzione. Comandi usando i simboli, |, ecc., non sono compatibili con il modulo di comando. In tali casi, il modulo Shell è sicuramente una scelta migliore.

Il modulo di comando Ansible ha alcuni requisiti che devono essere soddisfatti prima di poterlo utilizzare. Questi requisiti sono trattati nella prossima sezione di questa guida.

Prerequisiti del modulo di comando Ansible

Per utilizzare il modulo di comando Ansible, è necessario quanto segue:

  • Un sistema che ha installato Ansible.
  • Un paio di padroni di casa. Nel caso in cui tu stia testando i tuoi server, ti consigliamo di utilizzare le macchine virtuali. Software come Oracle VirtualBox, Vagrant e VMware Workstations sono perfetti per il lavoro.

Ti consigliamo anche di avere un know-how di base su come eseguire i comandi nel terminale per assicurarti di sapere cosa stai facendo.

Una volta soddisfatti i prerequisiti, possiamo procedere a imparare a utilizzare il modulo di comando Ansible.

Usando il modulo di comando ansible

Se hai qualche esperienza precedente che lavora con gli script di shell, l'uso del modulo di comando Ansible dovrebbe essere una passeggiata nel parco. Nel caso in cui non l'avessi fatto, non preoccuparti, poiché ti guideremo su come utilizzare il modulo di comando con l'aiuto di diversi esempi.

La prima cosa che devi fare è creare un file "Ansible_hosts". Questo file ti consentirà di raggruppare i tuoi host, il che sarà utile per l'esecuzione dei comandi.

Per creare un gruppo di host, digita quanto segue nel file "Ansible_hosts"

$ ansible testservers -list -i ansible_hosts
Host (2):

Nel nostro caso,

$ ansible testservers -list -i ansible_hosts
Host (2):
VM1
VM2

Questi host dovrebbero ora essere raggruppati insieme sotto gli alias "Testservers."Usiamo questo file come alcuni esempi.

Utilizzando il modulo di comando per trovare il runtime host

In questo esempio, useremo il modulo di comando Ansible per scoprire da quanto tempo i nostri host sono in esecuzione.

Questo può essere fatto in due modi. Il primo è usare ad hoc, un modo rapido per eseguire le funzioni tramite un singolo comando. Il secondo è scrivendo una sceneggiatura nel playbook.

Per trovare il runtime utilizzando ad hoc, utilizzare il comando seguente:

$ ansible testservers -m comando -a uptime -i ansible_hosts

Questo dovrebbe fornirti l'output nella seguente sintassi:

| Cambiato | rc = 0 >>

Per eseguire il comando come playbook, digita quanto segue:

Per eseguire il comando come playbook, digita quanto segue:
- nome:
ospiti:
compiti:
- nome:
Registro: uptimeoutput
Comando: "Uptime"
- debug:
VAR: uptimeoutput.stdout_lines

Nel nostro caso, la sceneggiatura dovrebbe apparire come segue:

- Nome: trova da quanto tempo gli host sono in esecuzione.
Host: testservers
compiti:
- Nome: comando per trovare il tempo di up -up usando il modulo di comando
Registro: uptimeoutput
Comando: "Uptime"
- debug:
VAR: uptimeoutput.stdout_lines

Con ciò, puoi eseguire questo playbook eseguendo il seguente comando nel terminal Linux:

libro di prova Ansible-Playbook.YML

L'output dovrebbe essere simile a quello del comando ad-hoc.

Utilizzo del modulo di comando per trovare l'utilizzo del disco

Il comando $ df -h viene utilizzato per scoprire l'utilizzo del disco su un sistema. Lo stesso comando può essere integrato con il modulo di comando Ansible per trovare l'utilizzo del disco dei suoi host.

Per trovare l'utilizzo del disco usando ad-hoc, usa questo comando:

$ ansible testservers -m comando -a "df -h" -i ansible_hosts

Per trovare l'utilizzo del disco usando PlayBook, eseguire il seguente script:

Nome: Uso del disco dei server
Host: testservers
compiti:
- Nome: eseguire il comando $ df -h.
Registro: dfout
Comando: "df -h"
- debug:
VAR: DFOUT.stdout_lines

Utilizzo del modulo di comando per riavviare il server

Il modulo di comando Ansible può essere utilizzato per riavviare un singolo server. Il parametro -limit viene utilizzato per limitare questa esecuzione.

Per eseguire il comando usando ad-hoc, digita quanto segue,

$ ansible testservers -m comando -a "httpd -k riavvio" -i ansible_hosts -b -limit vm1

Per eseguire il comando usando il playbook, eseguire il seguente script:

---
- Nome: riavviare il server web
Host: testservers
compiti:
- Nome: RestartWebServer
Registro: httpdresout
Diventa: sì
Comando: "httpd -k riavvio"
Quando: ansible_hostname == "VM1"
- debug:
VAR: httpdresout.stdout_lines

Questo dovrebbe riavviare il tuo server. Dovrebbe essere evidente che VM2 è stato saltato.

A parte gli esempi come menzionato sopra, ci sono molti comandi che possono essere eseguiti usando il modulo di comando Ansible. La documentazione di questi comandi e opzioni è disponibile sulla documentazione ufficiale Ansible online.

Conclusione

Speriamo che questa guida ti abbia aiutato a conoscere il modulo di comando Ansible. Abbiamo coperto le basi del modulo, i suoi prerequisiti e alcuni esempi di come usarlo. Con questo, speriamo che tu abbia una piacevole esperienza di lavoro su Ansible.