Stiamo utilizzando Ansible Vault per memorizzare password, chiavi private per certificati ecc. Nel nostro repository git di Ansible Playbook. Tutti i nostri dati privati esistenti sono in formato testo, quindi possiamo archiviarli in variabili. Questi vengono quindi utilizzati nei modelli o con il content
parametro del modulo copia.
Ora, abbiamo un file KeyStore Java, che purtroppo ha un formato binario. Come tale, non può essere archiviato all'interno di una variabile - o almeno non so come farlo. Quale sarebbe il modo più semplice per avere il nostro file correttamente crittografato mentre si trova in git, ma disponibile durante l'esecuzione ansible-playbook
?
Quello che ho già provato senza successo:
- Codifica del file binario in base64, memorizzando i dati codificati in una variabile e utilizzando il modulo modello con
{{base64_data | b64decode}}
. Porta a moltiEF BF BD
dump esadecimali del file risultante. I tre byte codificano il carattere sostitutivo Unicode in UTF-8, quindi c'è un problema con l'interpretazione dei dati binari come testo. - Codifica del file binario in base64, memorizzando i dati codificati in una variabile e usando il modulo copia con
content="{{base64_data | b64decode}}"
. Ansible si lamenta di "Una variabile ha inserito un nuovo parametro nel modulo args". Quando si usano virgolette singole anziché doppie, Ansible si lamenta di "errore durante l'analisi della stringa di argomenti" e di una copia di tutti i dati binari, scaricati sul terminale ...