diff --git a/10_vault/1_pippo.txt b/10_vault/1_pippo.txt new file mode 100644 index 0000000..c1add7b --- /dev/null +++ b/10_vault/1_pippo.txt @@ -0,0 +1 @@ +semplice file di testo diff --git a/10_vault/2_password b/10_vault/2_password new file mode 100644 index 0000000..c66a9cd --- /dev/null +++ b/10_vault/2_password @@ -0,0 +1 @@ +pXznd4pdRhac diff --git a/10_vault/3_playbook.yaml b/10_vault/3_playbook.yaml new file mode 100644 index 0000000..59276bb --- /dev/null +++ b/10_vault/3_playbook.yaml @@ -0,0 +1,9 @@ +--- +- name: printo a video la variabile contenuta nel vault + hosts: localhost + vars_files: 3_varsfile.yaml + + tasks: + - name: printo a video la variabile dichiarata nel file esterno + ansible.builtin.debug: + msg: "Il contenuto del file e' {{segreti}}" diff --git a/10_vault/3_varsfile.yaml b/10_vault/3_varsfile.yaml new file mode 100644 index 0000000..d8fe1e7 --- /dev/null +++ b/10_vault/3_varsfile.yaml @@ -0,0 +1,7 @@ +$ANSIBLE_VAULT;1.2;AES256;segreti +66613530346139386465386161613764663132323331303661346437633937636536376566626638 +3735313337663264643638623730656231393133666464660a386334383430366437363366616431 +65393937356538326565623964383863616337633534303630626562393036633435666664356163 +6232333733313435310a666631346263643234656336633739633839373933333734313838353533 +65323732363539386532353531653361363633633962306533323061366635643332343762383635 +3565626138326539663937396239393832376332313834333661 diff --git a/10_vault/README.md b/10_vault/README.md new file mode 100644 index 0000000..60e00aa --- /dev/null +++ b/10_vault/README.md @@ -0,0 +1,72 @@ +# 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 +``` +2) 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 +``` +3) 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 +``` diff --git a/README.md b/README.md index f09ae6a..454dd11 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,4 @@ Contenuto delle directory: - 3_installazione ← esempi su varie modalita' di installazione - 8_variabili ← esempi sull'utilizzo delle variabili - 9_template ← esempi sull'utilizzo dei template +- 10_vault ← esempi sull'utilizzo di ansible-vault