From 8b28f66c6d823bf02a67ca27c54bbe5f1cf8bf83 Mon Sep 17 00:00:00 2001 From: dado Date: Wed, 3 Sep 2025 21:11:12 +0200 Subject: [PATCH] variabili --- ansible/003-playbook.md | 53 ++++++++++++++++++++++++++++++++ lpic/101/009_virtualizzazione.md | 1 - 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/ansible/003-playbook.md b/ansible/003-playbook.md index c604ccc..a75c549 100644 --- a/ansible/003-playbook.md +++ b/ansible/003-playbook.md @@ -332,3 +332,56 @@ ansible-playbook playbook.yml --skip-tags "db" ``` Questo comando salterà l'esecuzione di tutti i task contrassegnati con il tag db. + +## Variabili + +Le variabili sono utilizzate per memorizzare valori, seguendo la sintassi `key: value`. + +Per fare riferimento a una variabile in Ansible, si utilizza la sintassi `Jinja2`, racchiudendo il nome della variabile tra le parentesi graffe doppie `{{ }}`. Ad esempio, se si definisce una variabile come `config_path: /opt/my_app/config`, il riferimento a questa variabile sarà `{{ config_path }}`. + +Le variabili possono essere utilizzate in diversi contesti: + +- Inventory +- Playbook: variabili definite direttamente nel playbook utilizzando la parola chiave `vars` +- Command line: variabili passate tramite la riga di comando utilizzando l'opzione `--extra-vars` +- File esterni: variabili definite in file esterni, richiamabili nel playbook con la parola chiave `vars_file` + +```yaml +--- +- name: Example playbook with variables + hosts: webservers + vars: + app_name: my_app + config_file_path: /etc/{{ app_name }}/config.yml + + tasks: + - name: Copy the configuration file + copy: + src: files/config.yml + dest: "{{ config_file_path }}" + owner: root + group: root + mode: '0644' +``` + +### Registrazione del valore di una variabile + +È possibile registrare il risultato di un task all’interno di una variabile, in modo da riutilizzarlo nei task successivi. Per fare ciò, si utilizza la parola chiave `register` all’interno del task: + +```yaml +--- +- name: playbook with variables + hosts: db + + tasks: + - name: get uptime + shell: uptime + register: uptime + + - debug: + var: uptime.stdout +``` + +In questo esempio, il task *get uptime* esegue il comando uptime e registra il risultato nella variabile *uptime*. Successivamente, il valore di *uptime.stdout* viene visualizzato utilizzando il modulo debug. + +E' possibile registrare il valore delle vartiabili. E' quindi possibile salvare il risultato di un task all'interno di una variabile e riutilizzarla in task successibvi. Nel task, per fare questo, si deve utilizzare la parola chiave `register`. \ No newline at end of file diff --git a/lpic/101/009_virtualizzazione.md b/lpic/101/009_virtualizzazione.md index 8994f44..4c4ca15 100644 --- a/lpic/101/009_virtualizzazione.md +++ b/lpic/101/009_virtualizzazione.md @@ -62,4 +62,3 @@ Ogni VM esegue un sistema operativo completo, con il proprio kernel, librerie e Richiedono un hypervisor per gestire l'allocazione delle risorse hardware. ![container_vs_vm](/asset/image/container_vs_vm.png) -