This commit is contained in:
dado
2025-09-07 21:05:48 +02:00
parent 2f9972eda6
commit b6070a94c9
2 changed files with 40 additions and 0 deletions

40
ansible/005-roles.md Normal file
View File

@@ -0,0 +1,40 @@
# Roles
I playbook possono diventare complessi quando sono responsabili della configurazione di numerosi sistemi diversi, ciascuno con più attività da gestire. Per affrontare questa complessità, Ansible offre la possibilità di organizzare le attività in una struttura di directory denominata `roles`.
In questa configurazione, i playbook richiamano i ruoli anziché i singoli task. Questo approccio consente di raggruppare le attività in unità logiche, facilitando il riutilizzo dei ruoli in altri playbook.
```yaml
---
# Tools for terminal
- name: TERMINAL - Kitty, Tmux, Fish
ansible.builtin.apt:
pkg:
- kitty
- tmux
- fish
state: present
```
## Inclusione di un ruolo in un playbook
Per utilizzare un ruolo allinterno di un playbook, è necessario richiamarlo tramite la keyword `roles`, seguita dallelenco dei ruoli da eseguire:
```yaml
- hosts: server
roles:
- test-role
```
## Struttura
Il comando per la creazione di un ruolo è `ansible-galaxy init test-role`. Questo comando non solo consente di inizializzare un nuovo ruolo, ma offre anche la possibilità di cercare e installare ruoli definiti da altri utenti disponibili online.
Al termine dellesecuzione del comando, viene generata una directory denominata come il ruolo stesso, con la seguente struttura:
- `Tasks`: la directory Tasks contiene l'elenco dei task eseguiti dal ruolo, specificati nel file `main.yml`
- `Handlers`: raccoglie gli handlers che possono essere utilizzati all'interno di questo ruolo. Si tratta di task speciali che vengono eseguiti solo quando sono stati notificati da altri task
- `Defaults`: include le variabili predefinite utilizzate allinterno del ruolo
- `Vars`: contiene ulteriori variabili
- `Files`: memorizza i file che devono essere distribuiti sui vari host nel corso dellesecuzione del ruolo
- `Meta`: conserva i metadati relativi al ruolo