54 lines
1.7 KiB
Markdown
54 lines
1.7 KiB
Markdown
# Inventory
|
||
|
||
L’elenco delle macchine da gestire viene specificato nel file `inventory`, un file di testo che può essere redatto in diversi formati, tra cui `YAML` o `INI`. Tale file contiene gli indirizzi IP o i nomi DNS dei nodi che saranno gestiti da Ansible.
|
||
|
||
Il percorso predefinito per il file inventory è `/etc/ansible/hosts`. Qualora si utilizzi un file personalizzato, è necessario specificarlo durante l’esecuzione dei comandi Ansible tramite l’opzione -i. Ad esempio:
|
||
|
||
```bash
|
||
ansible-playbook -i inventory playbook/my-playbook.yml -K --ask-vault-pass
|
||
```
|
||
|
||
In questo comando, `-i` indica il file inventory, mentre `-K` (o `--ask-become-pass`) richiede la password per l’escalation dei privilegi.
|
||
|
||
## Raggruppamento degli Host
|
||
|
||
Gli host possono essere organizzati in gruppi secondo diverse best practices, come:
|
||
|
||
- `what`: raggruppamento per tipologia (es. webserver, dbserver)
|
||
- `where`: raggruppamento per ubicazione geografica
|
||
- `when`: raggruppamento per utilizzo (es. test, sviluppo, produzione)
|
||
|
||
Di seguito un esempio di file inventory in formato INI:
|
||
|
||
```ini
|
||
mail.example.com
|
||
|
||
[webservers]
|
||
foo.example.com
|
||
bar.example.com
|
||
|
||
[dbservers]
|
||
192.168.1.10
|
||
192.168.1.11
|
||
192.168.1.[20:30]
|
||
```
|
||
|
||
## Variabili
|
||
|
||
È possibile definire variabili specifiche per ciascun host o per i gruppi di host. Alcuni esempi:
|
||
|
||
- `ansible_python_interpreter=/usr/bin/python3`
|
||
- `ansible_user=myuser`
|
||
|
||
## Verifica della configurazione
|
||
|
||
Per verificare che il file inventory sia stato compilato correttamente, è possibile utilizzare il seguente comando:
|
||
|
||
```bash
|
||
cd ~/git/ansible
|
||
|
||
ansible-inventory --list -i inventory
|
||
```
|
||
|
||
Se il file è stato redatto senza errori, il comando restituirà un riepilogo strutturato del contenuto dell’inventory.
|