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 --versionDescripció
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 pingDescripció
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 --listDescripció
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.ymlDescripció
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=0Exercicis 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.ymlamb 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
