En aquest tema, aprendrem les comandes bàsiques d'Ansible que ens permetran començar a interactuar amb els nostres sistemes gestionats. Aquestes comandes són fonamentals per a qualsevol usuari d'Ansible, ja que proporcionen les eines necessàries per executar tasques ad-hoc, gestionar inventaris i verificar la configuració.

  1. ansible --version

Descripció

Aquesta comanda mostra la versió d'Ansible instal·lada al sistema, així com informació sobre les dependències i la configuració.

Exemple

$ ansible --version

Sortida esperada

ansible [core 2.11.5]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.8.10 (default, May  3 2021, 08:55:58) [GCC 9.4.0]

  1. ansible all -m ping

Descripció

Aquesta comanda utilitza el mòdul ping per verificar la connectivitat amb tots els hosts definits en l'inventari. És una bona manera de confirmar que Ansible pot comunicar-se amb els sistemes gestionats.

Exemple

$ ansible all -m ping

Sortida esperada

host1 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
host2 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

  1. ansible all -a "uptime"

Descripció

Aquesta comanda executa una ordre ad-hoc (uptime) en tots els hosts definits en l'inventari. L'opció -a permet especificar l'ordre a executar.

Exemple

$ ansible all -a "uptime"

Sortida esperada

host1 | CHANGED | rc=0 >>
  10:23:45 up 5 days,  3:45,  1 user,  load average: 0.00, 0.01, 0.05
host2 | CHANGED | rc=0 >>
  10:23:45 up 10 days,  2:30,  2 users,  load average: 0.10, 0.20, 0.15

  1. ansible-inventory --list

Descripció

Aquesta comanda mostra l'inventari d'Ansible en format JSON. És útil per verificar la configuració de l'inventari i assegurar-se que tots els hosts estan correctament definits.

Exemple

$ ansible-inventory --list

Sortida esperada

{
    "_meta": {
        "hostvars": {
            "host1": {},
            "host2": {}
        }
    },
    "all": {
        "children": [
            "ungrouped"
        ]
    },
    "ungrouped": {
        "hosts": [
            "host1",
            "host2"
        ]
    }
}

  1. ansible-playbook playbook.yml

Descripció

Aquesta comanda executa un playbook d'Ansible. Els playbooks són fitxers YAML que defineixen una sèrie de tasques a executar en els hosts gestionats.

Exemple

$ ansible-playbook playbook.yml

Sortida esperada

PLAY [all] ***

TASK [Gathering Facts] ***
ok: [host1]
ok: [host2]

TASK [Print message] *****
ok: [host1] => {
    "msg": "Hello, World!"
}
ok: [host2] => {
    "msg": "Hello, World!"
}

PLAY RECAP ***
host1                      : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
host2                      : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Exercicis Pràctics

Exercici 1: Verificar la versió d'Ansible

  1. Executa la comanda ansible --version.
  2. Anota la versió d'Ansible i la versió de Python utilitzada.

Exercici 2: Comprovar la connectivitat amb els hosts

  1. Executa la comanda ansible all -m ping.
  2. Verifica que tots els hosts responen amb "pong".

Exercici 3: Executar una ordre ad-hoc

  1. Executa la comanda ansible all -a "date".
  2. Comprova que la sortida mostra la data i hora actual de cada host.

Exercici 4: Llistar l'inventari

  1. Executa la comanda ansible-inventory --list.
  2. Verifica que tots els hosts definits en el teu inventari apareixen en la sortida.

Exercici 5: Executar un playbook

  1. Crea un fitxer playbook.yml amb el següent contingut:
    ---
    - hosts: all
      tasks:
        - name: Print message
          debug:
            msg: "Hello, World!"
    
  2. Executa la comanda ansible-playbook playbook.yml.
  3. Verifica que la sortida mostra el missatge "Hello, World!" per a cada host.

Conclusió

En aquesta secció, hem après les comandes bàsiques d'Ansible que ens permeten començar a interactuar amb els nostres sistemes gestionats. Aquestes comandes són fonamentals per a qualsevol usuari d'Ansible i proporcionen les eines necessàries per executar tasques ad-hoc, gestionar inventaris i verificar la configuració. En el proper mòdul, explorarem els conceptes bàsics d'Ansible, incloent els fitxers d'inventari i la configuració d'Ansible.

© Copyright 2024. Tots els drets reservats