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.

  1. Fitxer de Configuració 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:

  1. Fitxer de configuració a nivell de projecte: ./ansible.cfg (al directori actual)
  2. Variable d'entorn: ANSIBLE_CONFIG
  3. Fitxer de configuració a nivell d'usuari: ~/.ansible.cfg
  4. 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 a True, 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 a False, 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.

  1. 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 a False, 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

  1. Exercici Pràctic

Objectiu

Configurar Ansible per utilitzar un fitxer d'inventari personalitzat i desactivar la comprovació de claus dels hosts remots.

Passos

  1. Crea un fitxer ansible.cfg al directori actual amb el següent contingut:
[defaults]
inventory = ./my_inventory
host_key_checking = False
  1. Crea un fitxer d'inventari anomenat my_inventory amb el següent contingut:
[webservers]
web1 ansible_host=192.168.1.10
web2 ansible_host=192.168.1.11
  1. Executa una comanda ad-hoc per comprovar la configuració:
ansible webservers -m ping

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.

© Copyright 2024. Tots els drets reservats