概要
触ってみないことにはわからないのでこちらのチュートリアルっぽい記事を参考に自分でも試してみました
環境
- macOS 10.15.7
- ansible 2.9.10
とりあえず動作する playbook の作成
まずはパスワードを暗号化していない状態で正常に動作する playbook を作成します
vim hosts
localhost ansible_connection=local
vim site.yml
---
- hosts: localhost
gather_facts: no
vars_files:
- vault.yml
tasks:
- debug: msg="password = {{ password }}"
vim vault.yml
---
password: 'hogehoge'
これで実況すると vault.yml のパスワードの内容がそのまま表示されるのが確認できると思います
ansible-playbook -i hosts site.yml
ansible vault を使って vault.yml に書かれているパスワードを暗号化する
ansible-vault encrypt
コマンドを使って先程の暗号化されていない vault.yml ファイルを指定します
この際に暗号化するためのパスワードが要求されるので適当に入力しましょう
ansible-vault encrypt vault.yml
暗号化に成功すると上記のようになります
暗号化に使用したパスワードは別途ちゃんと覚えておきましょう
ファイルの内容を確認すると今度は暗号化された内容になっているが確認できると思います
cat vault.yml
この状態で再度 playbook を実行しようとすると今度はエラーになります
ansible-playbook -i hosts site.yml
ERROR! Attempting to decrypt but no vault secrets found
暗号化されたファイルを使って playbook を流してみる
暗号化する際に入力したパスワードを使うことで暗号化されたファイルを使って playbook を実行することができます
--ask-vault-pass
というオプションを使えば OK です
ansible-playbook -i hosts site.yml --ask-vault-pass
これで Vault password の入力が求められるので暗号化したときのパスワードを入力すれば OK です
Vault password を入力しない場合は
毎回 Vault password を入力するのが面倒という場合は ansible.cfg を使うことで解決できます
vim ansible.cfg
[defaults]
vault_password_file = ~/.vault_password
vim ~/.vaule_password
でファイルを開いて Vault password を書いておくことで --ask-vault-pass
が不要になります
ansible-playbook -i hosts site.yml
暗号化したファイルを復号化するには
単純に復号化してファイルの内容を確認することができます
その場合は ansible-vault decrypt
を使います
ansible-vault decrypt vault.yml
ansible.cfg に vault_password_file
が記載されていてすでに復号化用のパスワードが記載されている場合は Vault password を入力せずに復号化できます
再度暗号化する場合は ansible-vault encrypt
を使います
ansible-vault decrypt vault.yml
最後に
ansible-vault を使ってみました
やろうと思えばこれですべての playbook を暗号化できますがそこまでやる必要はないと思います
0 件のコメント:
コメントを投稿