En aquest tema, aprendrem com configurar Ansible per adaptar-lo a les nostres necessitats específiques. La configuració d'Ansible es fa principalment a través del fitxer ansible.cfg
, que permet ajustar diversos paràmetres per optimitzar el comportament d'Ansible.
- Fitxer de Configuració
ansible.cfg
ansible.cfg
El fitxer ansible.cfg
és un fitxer de configuració que Ansible llegeix per determinar com ha de comportar-se. Aquest fitxer pot estar situat en diversos llocs, i Ansible els llegeix en l'ordre següent:
- Fitxer de configuració a nivell de projecte:
./ansible.cfg
(al directori actual) - Variable d'entorn:
ANSIBLE_CONFIG
- Fitxer de configuració a nivell d'usuari:
~/.ansible.cfg
- Fitxer de configuració a nivell del sistema:
/etc/ansible/ansible.cfg
Exemple de fitxer ansible.cfg
[defaults] inventory = ./hosts remote_user = ansible private_key_file = ~/.ssh/id_rsa host_key_checking = False retry_files_enabled = False timeout = 30 [privilege_escalation] become = True become_method = sudo become_user = root become_ask_pass = False [ssh_connection] ssh_args = -o ControlMaster=auto -o ControlPersist=60s
Explicació dels Paràmetres
-
[defaults]: Aquesta secció conté els paràmetres per defecte que Ansible utilitza.
inventory
: Especifica el fitxer d'inventari que Ansible utilitzarà.remote_user
: Defineix l'usuari per defecte amb el qual Ansible es connectarà als hosts remots.private_key_file
: Especifica la clau privada que s'utilitzarà per a l'autenticació SSH.host_key_checking
: Si es desactiva (False
), Ansible no comprovarà les claus dels hosts remots.retry_files_enabled
: Si es desactiva (False
), Ansible no crearà fitxers de reintents.timeout
: Defineix el temps d'espera per a les connexions SSH.
-
[privilege_escalation]: Aquesta secció conté els paràmetres per a l'escalat de privilegis.
become
: Si es defineix com aTrue
, Ansible utilitzarà l'escalat de privilegis.become_method
: Defineix el mètode d'escalat de privilegis (per exemple,sudo
).become_user
: Especifica l'usuari al qual es farà l'escalat de privilegis.become_ask_pass
: Si es defineix com aFalse
, Ansible no demanarà la contrasenya per a l'escalat de privilegis.
-
[ssh_connection]: Aquesta secció conté els paràmetres per a les connexions SSH.
ssh_args
: Defineix arguments addicionals per a les connexions SSH.
- Configuració d'Ansible a través de Variables d'Entorn
A més del fitxer ansible.cfg
, també podem configurar Ansible utilitzant variables d'entorn. Algunes de les variables d'entorn més comunes són:
ANSIBLE_CONFIG
: Especifica la ubicació del fitxer de configuracióansible.cfg
.ANSIBLE_INVENTORY
: Defineix el fitxer d'inventari que Ansible utilitzarà.ANSIBLE_REMOTE_USER
: Especifica l'usuari remot per defecte.ANSIBLE_PRIVATE_KEY_FILE
: Defineix la clau privada per a l'autenticació SSH.ANSIBLE_HOST_KEY_CHECKING
: Si es defineix com aFalse
, desactiva la comprovació de claus dels hosts remots.
Exemple d'ús de Variables d'Entorn
export ANSIBLE_CONFIG=./ansible.cfg export ANSIBLE_INVENTORY=./hosts export ANSIBLE_REMOTE_USER=ansible export ANSIBLE_PRIVATE_KEY_FILE=~/.ssh/id_rsa export ANSIBLE_HOST_KEY_CHECKING=False
- Exercici Pràctic
Objectiu
Configurar Ansible per utilitzar un fitxer d'inventari personalitzat i desactivar la comprovació de claus dels hosts remots.
Passos
- Crea un fitxer
ansible.cfg
al directori actual amb el següent contingut:
- Crea un fitxer d'inventari anomenat
my_inventory
amb el següent contingut:
- Executa una comanda ad-hoc per comprovar la configuració:
Solució
Si la configuració és correcta, hauríeu de veure una sortida similar a aquesta:
web1 | SUCCESS => { "changed": false, "ping": "pong" } web2 | SUCCESS => { "changed": false, "ping": "pong" }
Conclusió
En aquesta secció, hem après com configurar Ansible utilitzant el fitxer ansible.cfg
i variables d'entorn. La configuració adequada d'Ansible és crucial per assegurar-se que les operacions es realitzin de manera eficient i segura. En el proper tema, explorarem les comandes ad-hoc d'Ansible per executar tasques ràpides i senzilles.
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