Qual è l'equivalente di configurazione di Ansible di `--vault-password-file`?


12

Secondo l'aiuto di ansible-playbook si potrebbe usare --user=REMOTE_USERper definire l'utente ssh, ma si potrebbe anche definire ansible_ssh_user: REMOTE_USERin host o group_vars.

Domanda

Quale variabile deve essere definita nella directory group- o host_vars per evitare che --vault-password-filedebba essere definita durante l'esecuzione ansible-playbook?

tentativi

  • Quando ansible_vault_password_file: ~/.vault_pass.txtè definito nella configurazione, la decodifica non riesce:

    ERROR! Decryption failed on /path/to/vault
    
  • In questa documentazione non è stata trovata alcuna variabile del vault associata


A proposito, ora è documentato (dalla versione 1.7) qui: docs.ansible.com/ansible/…
— Tensibai,

Risposte:


13

Ecco la definizione:

DEFAULT_VAULT_PASSWORD_FILE = get_config(p, DEFAULTS, 'vault_password_file', \
'ANSIBLE_VAULT_PASSWORD_FILE', None, value_type='path')

Ciò significa che hai inserito ansible.cfg o il playbook:

vault_password_file: ~/.vault_pass.txt

O nella tua shell definita questa variabile:

export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt

Ho lasciato lì intenzionalmente il testo dell'URL per mostrare alle persone come guardare il codice può aiutare dove manca la documentazione e dove il codice può essere trovato facilmente. Ma suppongo che un collegamento ipertestuale dovrebbe essere sufficiente.
— Jiri Klouda

Se qualcos'altro fallisce, leggi la documentazione ... e se non c'è documentazione, leggi la fonte ... se hai accesso ad essa ... e se lo fai, assicurati di guardare la versione giusta .. l'unica cosa rimasta allora è riuscire a capire tutto. PS: i collegamenti potrebbero smettere di funzionare un giorno ...
— Pierre.Vriens

@JiriKlouda non sembra funzionare sebbene sia stato definito in group_vars/all/vars. export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txtdoveva essere eseguito.
— 030

Questa è una variabile di configurazione. Deve essere in ansible.cfg o equivalente o nel playbook.
— Jiri Klouda,

Inoltre ho verificato in modo specifico la versione 2.2 che esegui ed è lì: github.com/ansible/ansible/blob/stable-2.2/lib/ansible/…
— Jiri Klouda

2

È possibile impostare una variabile di ambiente ANSIBLE_VAULT_PASSWORD_FILEmemorizzando il percorso del file della password del Vault. In questo modo non sarà necessario utilizzare sempre l' --vault-password-fileinterruttore quando si esegue un playbook.

Questo è descritto nella documentazione di Ansible Vault, disponibile qui .

Quindi, aggiungi export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txtal tuo ~/.bash_profile, fonte da esso e sei pronto per partire.

Se sono necessarie password del vault diverse per diversi gruppi di host, è necessario effettuare le seguenti operazioni:

All'interno di questa sottodirectory, crea due file denominati vars e vault. All'interno del file var, definire tutte le variabili necessarie, comprese quelle sensibili. Quindi, copia tutte le variabili sensibili nel file del vault e aggiungi queste variabili con vault_. È necessario regolare le variabili nel file VAR in modo che puntino alle variabili Vault_ corrispondenti e assicurarsi che il file Vault sia crittografato Vault.

Questo è un esempio di approccio alle migliori pratiche per la gestione di informazioni riservate su base per gruppo. Maggiori informazioni sono disponibili nella documentazione di Ansible qui (Il testo sopra è copiato da lì).


1
Ciò non consentirà una password diversa per host
— Tensibai

Ti riferisci alla password di connessione? Perché se lo fai, cosa ha in comune con Ansible Vault?
— 13dimitar

Mi riferivo alla password del Vault, disposto a disporre di una password del Vault diversa per gruppi diversi (ed è la radice della domanda per quanto ne capisco).
— Tensibai,

Non l'ho capito in questo modo. Ho modificato la mia risposta per includere quello scenario.
— 13dimitar

sembra meglio. A proposito, il downvote non è mio
— Tensibai,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.