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.