sfondo
- Usiamo Ansible per il provisioning e la gestione dell'infrastruttura di Azure. Al momento eseguiamo Ansible "manualmente", ovvero eseguiamo manualmente i playbook per varie attività automatizzate. Nessuna infrastruttura CI.
- Probabilmente non pertinente, ma gestiamo il nostro inventario utilizzando script dinamici
azure_rm.py
. - Siamo incoraggiati ad essere il più sicuri possibile, ad es
- Non archiviare le password di Vault in
~/.vault_pass
o in alcun file locale - Non archiviare i segreti di Azure in
~/.azure/credentials
- Non conservare nulla di sicuro in
.bashrc
.
- Non archiviare le password di Vault in
In uno scenario del genere, ho difficoltà a elaborare una strategia coerente per garantire che i miei playbook possano accedere ai segreti di Azure, seguendo le linee guida sopra.
Domanda
Come posso evitare di archiviare Ansible Vault e le credenziali di Azure sui file, garantendo comunque che i miei playbook possano accedervi?
Quello che ho provato
Finora ho escogitato uno script wrapper che
- chiede all'utente la password di Vault
- Lo utilizza per decrittografare uno script di Vaulted Shell
- Valuta lo script, che carica le variabili di ambiente di Azure nell'ambiente;
- Esegue il playbook sull'ambiente che è stato così impostato.
Qualche soluzione migliore (più elegante, meno complicata, più "Ansible") là fuori?