- ansibleレシピ実行時にいちいちパスワードを入れたくない
- しかし、レシピは共有するのでレシピ実行時に生パスワードは書きたくない
- vars_promptがお手軽に書けるので使いたい(複雑なpause文は避けたい)
上記を満たす方法を検討。
- private.ymlにパスワード類を記載し、Ansible Vaultで暗号化する
- private.ymlに定義した変数を、実行時に --extra-vars で読み込み
上記を参考に~/private.ymlにパスワードを保存しAnsible Vaultで暗号化、管理、Vault Passwordの入力も省略してみる
$ cat ~/.ansible.cfg [defaults] vault_password_file=/home/user/vaultpass
パスワード入力省略するケース
$ ansible-playbook -i hosts playbook.yml --extra-vars="@~/private.yml"
パスワード入力をさせるケース
$ ansible-playbook -i hosts playbook.yml
プレイブックからprivate.ymlが独立したので、実質的に使いやすいグローバル変数
同一ディレクトリにVault Passwordを置くVault の存在意義