他のチームと共有する展開プロジェクトがあります。Vault でシークレットを暗号化しました。本番ファイルをパスワードで暗号化し、ステージング ファイルを別のパスワードで暗号化して、他のチームが本番環境の秘密にアクセスできないようにしたいと考えています。
それは可能ですか?
私はそのようなことをしました。私の秘密 :
cat /group_vars/all/vault_production.yml (encrypt with password A)
production_password: 'test1'
cat/group_vars/all/vault_staging.yml (encrypt with password B)
staging_password: 'test2'
私の環境:
cat hosts-production
[all:vars]
env_type=production
cat hosts-staging
[all:vars]
env_type=staging
私のスクリプト:
- copy:
content: |
env PASS={{hostvars[inventory_hostname][env_type + '_password']}}
...
そして、そのようにプレイブックを起動します。
# for production
ansible-playbook -i hosts-staging test.yml --vault-password-file .password_a
# for staging
ansible-playbook -i hosts-staging test.yml --vault-password-file .password_b
しかし、2 つの異なるパスワードがあるため、これは機能しません (エラー! 復号化に失敗しました)。その方法を知っていますか?
ありがとう。
ブラジル、
エリック