corso_ansible/10_vault
2024-06-04 00:44:34 +02:00
..
1_pippo.txt feat: aggiunta una buona parte del capitolo 10_vault 2024-06-04 00:44:34 +02:00
2_password feat: aggiunta una buona parte del capitolo 10_vault 2024-06-04 00:44:34 +02:00
3_playbook.yaml feat: aggiunta una buona parte del capitolo 10_vault 2024-06-04 00:44:34 +02:00
3_varsfile.yaml feat: aggiunta una buona parte del capitolo 10_vault 2024-06-04 00:44:34 +02:00
README.md feat: aggiunta una buona parte del capitolo 10_vault 2024-06-04 00:44:34 +02:00

Alcuni esempi pratici sull'utilizzo di Ansible Vault

Ansible-vault è molto utile per criptare files con informazioni che devono rimanere segrete, come chiavi, password o informazioni sensibili

  1. Come primo esempio, prendiamo un banale file .txt e lo criptiamo con ansible-vault (incluso in ansible-core): prima verifichiamo che il file sia "in chiaro":
cat 1_pippo.txt 

una volta verificato che il file è visualizzabile in chiaro, lo criptiamo (viene chiesto di definire una password):

ansible-vault encrypt 1_pippo.txt

a questo punto verificare che il file non sia più visibile "in chiaro":

cat 1_pippo.txt

1.1) partendo dal punto precedente, dato un vault creato con ansible-vault, lo visualizziamo (occorre la password con il quale è protetto): per visualizzare il contenuto di un vault:

ansible-vault view 1_pippo.txt

1.2) partendo sempre dal vault creato al punto 1), possiamo editare il contenuto del vault (occorre la password con il quale è protetto): per modificare il contenuto di un vault:

ansible-vault edit 1_pippo.txt

1.3) partendo sempre dal vault creato al punto 1), possiamo decriptare il file facendolo tornare "in chiaro" (occorre la password con il quale è protetto): per decriptare il vault:

ansible-vault decrypt 1_pippo.txt
  1. Come secondo esempio criptiamo un file utilizzando un file in cui è contenuta la password per criptare/decriptare: generiamo il file con la password:
pwgen -sB 12 1 > 2_password

dopo aver generato il file con la password, procediamo a criptare il file 1_pippo.txt con il seguente comando:

ansible-vault encrypt 1_pippo.txt --vault-pass-file 2_password

2.1) le stesse operazioni di visualizzazione e/o di modifica del vault si possono fare utilizzando il file in cui è contenuta la password: visualizzo il contenuto:

ansible-vault view 1_pippo.txt --vault-pass-file 2_password

edito il contenuto:

ansible-vault edit 1_pippo.txt --vault-pass-file 2_password

decripto il contenuto:

ansible-vault decrypt 1_pippo.txt --vault-pass-file 2_password
  1. nel caso in cui abbiamo più file protetti con vault, può essere comodo impiegare il vault-id, in questo esempio proviamo a criptare un file impiegando anche il vault id: comando per criptare il file con vault id (viene chiesto di definire una password):
ansible-vault encrypt --vault-id segreti@prompt 3_varsfile.yaml 

comando per criptare il file con vault id e file contenente la password:

ansible-vault encrypt --vault-id segreti@2_password 3_varsfile.yaml

3.1) in questo esempio, partendo dal file 3_varsfile.yaml criptato contenente una variabile, lanciamo il playbook 3_playbook.yaml che richiama la variabile nel file criptato: per lanciare ansible utilizzando il vault specifico:

ansible-playbook 3_playbook.yaml --vault-id segreti@2_password

un altro modo per ottenere lo stesso risultato e' con il seguente comando:

ansible-playbook 3_playbook.yaml --vault-pass-file 2_password