Modulo di comando Ansible

Modulo di comando Ansible
In alcuni casi, ciò che è necessario è eseguire immediatamente le istruzioni sugli host remoti target, in modo simile a come fare su un prompt dei comandi in Windows. Il modulo di comando Ansible è utile in questo scenario. Capirai il modulo di comando Ansible in questo articolo, incluso il modo in cui funziona e come puoi utilizzarlo per fornire istruzioni agli host remoti gestiti.

In Ansible, se vogliamo emettere alcuni comandi per apportare modifiche o aggiornare qualsiasi cosa sull'host remoto target, useremo il modulo di comando. Il modulo ad hoc ansible è il modulo predefinito quando stiamo usando il modulo "comando" nello strumento Ansible. Gli unici eseguibili che il modulo di comando può eseguire sono quelli che sono su host a distanza target. L'obiettivo principale del modulo di comando in Ansible è eludere il terminale locale.

Ci sono alcune restrizioni in Ansible, ad esempio, variabili come $ hostname o $ home non sono accessibili e operazioni come "&" e "<" etc are not functional in the command module. Any other Ansible module can be used if you wish to utilize these parameters. The command module in Ansible is unaffected by the remote host environment, which is why its outcomes are regarded as being more dependable and secure. On the target remote hosts or servers, that are specified as independent servers or hosting groups, the Command module is largely used to carry out standard Ubuntu instructions.

Prerequisiti per l'utilizzo del modulo di comando in Ansible

Questo tutorial include dimostrazioni pratiche di Ansible. Per utilizzare il modulo di comando Ansible, presumiamo che tu abbia i requisiti elencati di seguito:

  • Per prima cosa abbiamo bisogno di software relativo ad Ansible sul tuo sistema in modo da poter utilizzare lo strumento Ansible prima di poter implementare il modulo di comando. Stiamo usando Ansible 2.12 o una versione successiva per il tutorial.
  • Di conseguenza, abbiamo bisogno di un controller Ansible per eseguire i comandi su host remoti e gli host remoti su cui vogliamo concentrarci per le implementazioni.

Esploriamo la premessa del modulo di comando in modo più dettagliato ed esaminiamo come Ansible lo implementa gettando in pratica diversi scenari.

Esempio 01: Verificare il tempo di uptime di un host remoto target utilizzando il modulo di comando di Ansible

Ogni potenziale operatore professionale o potente, come un controller Ansible, deve possedere una solida conoscenza di alcuni comandi trovati nello strumento di configurazione Ansible. Useremo uno dei comandi più importanti del modulo di comando che è il comando "Uptime" in Ansible. Il tempo di uptime del comando visualizza l'ora attuale, il numero di host attivi, il carico tipico del server rispetto ai precedenti 1, 5 e 15 minuti, nonché il tempo in cui il dispositivo ha funzionato. Seguendo le scelte specificate, è anche in grado di limitare il contenuto pertinente allo stesso tempo.

Iniziamo creando il playbook in cui scriveremo il comando uptime per verificare il tempo di uptime dell'host remoto. Il comando che useremo per creare il playbook nello strumento Ansible è il seguente:

[root@master ansible]# nano comand_module.YML

Dopo aver scritto il comando sopra, il comando_module.YML Playbook verrà creato e lanciato in un nuovo editor sul nome del playbook che è "Command_module". In questo editore, forniamo per la prima volta gli host remoti che vogliamo target. Qui, abbiamo preso di mira "tutti" gli host remoti. Per ottenere le informazioni relative agli host remoti mirati, utilizzeremo il modulo di "raccolta". I dati raccolti vengono generalmente indicati come "fatti" o "variabili" nello strumento Ansible.

Nello strumento Ansible, possiamo raccogliere singolarmente i dati degli host remoti utilizzando il comando specifico che è "configurazione". Ma in realtà, la variabile di fatti di raccolta viene eseguita chiamando questo modulo di configurazione per impostazione predefinita in Ansible Playbooks. Per raccogliere i dati, passeremo il valore "vero" o "falso". Come mostrato, abbiamo superato "false" perché non vogliamo ottenere le informazioni dell'host target.

Successivamente, elencheremo le attività che vogliamo fare nel playbook Command_Module. Inizieremo nominando il compito. Quindi, abbiamo usato il parametro "Registra" in modo da poter tracciare e archiviare l'output in questo parametro Ansible. Ora passeremo il comando che vogliamo eseguire, che è "Uptime". Quindi, abbiamo usato il comando "debug" per stampare l'output della variabile.

- ospiti:
- Tutto
Gather_Facts: false
compiti:
- Nome: eseguire il comando uptime tramite il modulo di comando
Registro: uptimeoutput
Comando: "Uptime"
- debug:
VAR: uptimeoutput.stdout_lines

Colpire Ctrl+X terminerà l'editor di PlayBook. Ora creeremo il file di inventario, che conterrà i dettagli sull'host remoto target. Di seguito è menzionato il comando che useremo per creare il file di inventario in Ansible:

[root@master ansible]# nano host.YML

Un editor diverso chiamato "host" verrà aperto con il file di inventario. Poiché gli host "tutti" sono stati menzionati nel playbook, ora esamineremo ogni host individualmente. Usiamo solo un host nel file di inventario, che chiameremo "host1" e includeremo i suoi dettagli lì. Inizieremo fornendo l'indirizzo IP, quindi l'identità dell'host, le credenziali dello strumento Ansible, il nome della connessione che è stata formata tra il controller e l'host e infine il numero di porta.

Tutto:
ospiti:
Host1:
Ansible_host: 192.168.3.229
Ansible_User: Ansible
Ansible_Password: *******
Ansible_Connection: SSH
Ansible_port: 22

Ora lanceremo il playbook e il file di inventario che sono stati entrambi creati dopo essere stati scritti dal comando che è elencato di seguito:

[root@master ansible]# ansible-playbook command_module.yml -i host.YML

Ecco l'output dopo aver eseguito correttamente dove abbiamo le informazioni di host1. Abbiamo il tempo, i giorni, i dati totali degli utenti e la media di carico dell'host1.

Esempio 02: utilizzo del comando UNAME per ottenere il nome host e la versione dell'host remoto

Ecco il secondo esempio di un modulo di comando in Ansible in cui useremo il comando "uname". Stiamo usando "UNAME" per ottenere le informazioni sull'ospite remoto di Ansible come sessimo di ottenere il nome dell'host remoto e quale versione dello strumento Ansible. Innanzitutto, inseriremo il playbook creato di recente che è comand_module.YML e quindi modificare le attività e i comandi. Per aprire il comando_module.Playbook YML, useremo il comando "nano":

[root@master ansible]# nano comand_module.YML

Nel playbook, abbiamo modificato le attività che sono state mostrate di seguito nello snippet del codice. Come mostrato nella variabile di comando, abbiamo superato il comando "uname" insieme all'opzione "-a" in modo da poter ottenere le informazioni di tutti gli host.

- ospiti:
- Tutto
Gather_Facts: false
compiti:
- Nome: Esecuzione dell'istruzione UNAME
Registro: Unameout
Comando: "UNAME -A"
- debug:
VAR: Unameout.stdout_lines

Salvemo le modifiche e chiutreremo il playbook. Ora eseguiremo il playbook per ottenere l'output del comando "uname" e vedere cosa otteniamo. Per l'esecuzione del playbook, di seguito è il comando che useremo:

[root@master ansible]# ansible-playbook command_module.yml -i host.YML

Il risultato dell'esecuzione corretta del comando sopra menzionato è mostrato di seguito. Il nome host e la versione sono mostrati in Green Font.

Conclusione

Abbiamo imparato uno dei moduli di Ansible che è il modulo di comando. Abbiamo discusso di come funziona in Ansible. Inoltre, abbiamo imparato i due scenari di base del modulo di comando implementando gli esempi.