Les comandes ad-hoc d'Ansible són ordres simples que es poden executar des de la línia de comandes per realitzar tasques ràpides i senzilles sense la necessitat de crear un playbook. Aquestes comandes són molt útils per a tasques d'administració del sistema, com ara instal·lar paquets, copiar fitxers o gestionar serveis.

Objectius d'aquest tema

  • Entendre què són les comandes ad-hoc.
  • Aprendre a executar comandes ad-hoc bàsiques.
  • Conèixer els mòduls més utilitzats en comandes ad-hoc.
  • Practicar amb exemples pràctics.

Què són les comandes ad-hoc?

Les comandes ad-hoc són ordres que es poden executar directament des de la línia de comandes d'Ansible per realitzar accions immediates en els nodes gestionats. Aquestes comandes utilitzen mòduls d'Ansible per dur a terme tasques específiques.

Sintaxi bàsica

La sintaxi bàsica d'una comanda ad-hoc és la següent:

ansible <grup_o_host> -m <mòdul> -a "<arguments>"
  • <grup_o_host>: El grup o host sobre el qual s'executarà la comanda.
  • -m <mòdul>: El mòdul d'Ansible que s'utilitzarà.
  • -a "<arguments>": Els arguments que es passaran al mòdul.

Executant comandes ad-hoc bàsiques

Exemple 1: Ping

El mòdul ping s'utilitza per verificar la connectivitat amb els hosts gestionats.

ansible all -m ping

Explicació:

  • all: Especifica que la comanda s'executarà en tots els hosts definits en l'inventari.
  • -m ping: Utilitza el mòdul ping.

Exemple 2: Instal·lar un paquet

El mòdul yum s'utilitza per gestionar paquets en sistemes basats en Red Hat. En aquest exemple, instal·larem el paquet httpd.

ansible webservers -m yum -a "name=httpd state=present"

Explicació:

  • webservers: Especifica el grup de hosts anomenat webservers.
  • -m yum: Utilitza el mòdul yum.
  • -a "name=httpd state=present": Instal·la el paquet httpd.

Exemple 3: Copiar un fitxer

El mòdul copy s'utilitza per copiar fitxers des de la màquina de control als hosts gestionats.

ansible all -m copy -a "src=/etc/hosts dest=/tmp/hosts"

Explicació:

  • all: Especifica que la comanda s'executarà en tots els hosts definits en l'inventari.
  • -m copy: Utilitza el mòdul copy.
  • -a "src=/etc/hosts dest=/tmp/hosts": Copia el fitxer /etc/hosts a /tmp/hosts en els hosts gestionats.

Mòduls més utilitzats en comandes ad-hoc

A continuació es mostra una taula amb alguns dels mòduls més utilitzats en comandes ad-hoc i les seves funcions:

Mòdul Funció
ping Verificar la connectivitat amb els hosts
yum Gestionar paquets en sistemes basats en Red Hat
apt Gestionar paquets en sistemes basats en Debian
copy Copiar fitxers
service Gestionar serveis
user Gestionar usuaris
command Executar comandes en els hosts

Exercicis pràctics

Exercici 1: Verificar la connectivitat

Executa una comanda ad-hoc per verificar la connectivitat amb tots els hosts definits en el teu inventari.

Solució:

ansible all -m ping

Exercici 2: Instal·lar un paquet

Utilitza una comanda ad-hoc per instal·lar el paquet nginx en tots els hosts del grup webservers.

Solució:

ansible webservers -m yum -a "name=nginx state=present"

Exercici 3: Copiar un fitxer

Copia el fitxer /etc/hosts de la màquina de control a /tmp/hosts en tots els hosts definits en el teu inventari.

Solució:

ansible all -m copy -a "src=/etc/hosts dest=/tmp/hosts"

Errors comuns i consells

  • Error de connexió: Si obtens un error de connexió, assegura't que els hosts gestionats són accessibles i que tens les credencials correctes.
  • Permisos insuficients: Alguns mòduls requereixen permisos d'administrador. Utilitza l'opció --become per executar la comanda amb privilegis elevats.
  • Arguments incorrectes: Verifica que els arguments passats als mòduls són correctes i compleixen amb la sintaxi esperada.

Resum

En aquest tema, hem après què són les comandes ad-hoc d'Ansible i com utilitzar-les per realitzar tasques ràpides i senzilles. Hem vist exemples pràctics d'execució de comandes ad-hoc i hem conegut alguns dels mòduls més utilitzats. Finalment, hem practicat amb exercicis per reforçar els conceptes apresos.

En el següent tema, explorarem els mòduls d'Ansible en més detall.

© Copyright 2024. Tots els drets reservats