Introducció

En aquest tema, explorarem les variables i els fets en Ansible. Les variables permeten emmagatzemar dades que poden ser utilitzades en els playbooks, mentre que els fets són informació recollida sobre els sistemes gestionats per Ansible. Comprendre com utilitzar variables i fets és essencial per escriure playbooks flexibles i reutilitzables.

Continguts

Què són les Variables?

Les variables en Ansible són elements que permeten emmagatzemar dades que poden ser utilitzades al llarg dels playbooks. Les variables poden contenir diferents tipus de dades, com ara cadenes de text, números, llistes i diccionaris.

Tipus de Variables

Ansible permet definir variables en diversos llocs:

  • Variables de Playbook: Definides directament en el playbook.
  • Variables d'Inventari: Definides en els fitxers d'inventari.
  • Variables de Rol: Definides dins dels rols.
  • Variables de Línia de Comanda: Passades a través de la línia de comanda.
  • Variables de Fets: Recollides automàticament per Ansible.

Definint Variables

En el Playbook

---
- name: Exemple de Playbook amb Variables
  hosts: all
  vars:
    nom_usuari: "admin"
    port: 8080
  tasks:
    - name: Mostra el nom d'usuari
      debug:
        msg: "El nom d'usuari és {{ nom_usuari }}"

En el Fitxer d'Inventari

[webservers]
server1 ansible_host=192.168.1.10 ansible_user=admin
server2 ansible_host=192.168.1.11 ansible_user=admin

En un Fitxer de Variables

# vars/main.yml
nom_usuari: "admin"
port: 8080

Utilitzant Variables

Les variables es poden utilitzar en els playbooks mitjançant la sintaxi {{ variable_name }}.

- name: Exemple d'ús de variables
  hosts: all
  vars:
    nom_usuari: "admin"
  tasks:
    - name: Mostra el nom d'usuari
      debug:
        msg: "El nom d'usuari és {{ nom_usuari }}"

Què són els Fets?

Els fets són informació recollida automàticament per Ansible sobre els sistemes gestionats. Aquests inclouen dades com ara el sistema operatiu, la memòria, les adreces IP, etc.

Recollint Fets

Ansible recull fets automàticament abans d'executar les tasques. Això es pot controlar amb el paràmetre gather_facts.

- name: Exemple de recollida de fets
  hosts: all
  gather_facts: yes
  tasks:
    - name: Mostra el sistema operatiu
      debug:
        msg: "El sistema operatiu és {{ ansible_os_family }}"

Utilitzant Fets

Els fets es poden utilitzar de la mateixa manera que les variables.

- name: Exemple d'ús de fets
  hosts: all
  gather_facts: yes
  tasks:
    - name: Mostra la memòria total
      debug:
        msg: "La memòria total és {{ ansible_memtotal_mb }} MB"

Exercicis Pràctics

Exercici 1: Definint i Utilitzant Variables

  1. Crea un playbook que defineixi una variable nom_usuari i una variable port.
  2. Afegeix una tasca que mostri aquestes variables utilitzant el mòdul debug.

Solució

---
- name: Exercici 1: Definint i Utilitzant Variables
  hosts: all
  vars:
    nom_usuari: "admin"
    port: 8080
  tasks:
    - name: Mostra el nom d'usuari
      debug:
        msg: "El nom d'usuari és {{ nom_usuari }}"
    - name: Mostra el port
      debug:
        msg: "El port és {{ port }}"

Exercici 2: Utilitzant Fets

  1. Crea un playbook que reculli fets i mostri el sistema operatiu i la memòria total del sistema.

Solució

---
- name: Exercici 2: Utilitzant Fets
  hosts: all
  gather_facts: yes
  tasks:
    - name: Mostra el sistema operatiu
      debug:
        msg: "El sistema operatiu és {{ ansible_os_family }}"
    - name: Mostra la memòria total
      debug:
        msg: "La memòria total és {{ ansible_memtotal_mb }} MB"

Conclusió

En aquest tema, hem après què són les variables i els fets en Ansible, com definir-los i utilitzar-los en els playbooks. Les variables permeten emmagatzemar dades reutilitzables, mentre que els fets proporcionen informació detallada sobre els sistemes gestionats. Aquests conceptes són fonamentals per escriure playbooks eficients i flexibles. En el proper tema, explorarem els condicionals i els bucles en Ansible.

© Copyright 2024. Tots els drets reservats