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ó.
ansible --version
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
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]
ansible all -m ping
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
Sortida esperada
host1 | SUCCESS => { "changed": false, "ping": "pong" } host2 | SUCCESS => { "changed": false, "ping": "pong" }
ansible all -a "uptime"
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
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
ansible-inventory --list
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
Sortida esperada
{ "_meta": { "hostvars": { "host1": {}, "host2": {} } }, "all": { "children": [ "ungrouped" ] }, "ungrouped": { "hosts": [ "host1", "host2" ] } }
ansible-playbook playbook.yml
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
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
- Executa la comanda
ansible --version
. - Anota la versió d'Ansible i la versió de Python utilitzada.
Exercici 2: Comprovar la connectivitat amb els hosts
- Executa la comanda
ansible all -m ping
. - Verifica que tots els hosts responen amb "pong".
Exercici 3: Executar una ordre ad-hoc
- Executa la comanda
ansible all -a "date"
. - Comprova que la sortida mostra la data i hora actual de cada host.
Exercici 4: Llistar l'inventari
- Executa la comanda
ansible-inventory --list
. - Verifica que tots els hosts definits en el teu inventari apareixen en la sortida.
Exercici 5: Executar un playbook
- Crea un fitxer
playbook.yml
amb el següent contingut:--- - hosts: all tasks: - name: Print message debug: msg: "Hello, World!"
- Executa la comanda
ansible-playbook playbook.yml
. - 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.
Ansible: De Principiant a Avançat
Mòdul 1: Introducció a Ansible
Mòdul 2: Conceptes bàsics d'Ansible
Mòdul 3: Playbooks
- Introducció als Playbooks
- Escrivint el teu primer Playbook
- Estructura del Playbook
- Variables i Fets
- Condicionals i Bucles
Mòdul 4: Rols
Mòdul 5: Tècniques Avançades de Playbook
Mòdul 6: Ansible Galaxy
Mòdul 7: Ansible Tower
- Introducció a Ansible Tower
- Instal·lant Ansible Tower
- Utilitzant Ansible Tower
- Gestionant Projectes i Inventaris