はじめに
ansible-vault で暗号化したファイルの差分を git diff
で見れるようにする方法を説明します。
手順
パスワードなしで vault ファイルを閲覧できるようにする
プロジェクトのホームディレクトリに ./ansible.cfg
を作成する
ansible.cfg
# ansible-vaultのパスワードを格納したファイルのパスを指定
[defaults]
vault_password_file = ./.vault_password
パスワードを格納するファイルを作成(ここでは .vault_password
とする)
.vault_password
hogehoge123
パスワードファイルは誤ってリポジトリにコミットしないように、 .gitignore
に追加しておく。
.gitignore
.vault_password
vaultファイルのテキストコンバータを ansible-vault に設定する
-
.git/config
または~/.gitconfig
に以下の記述を追加。
.git/config
[diff "ansible-vault"]
textconv = ansible-vault view
cachetextconv = true
- vaultファイルのパスを指定
.gitattributes
または ~/.gitattributes
にvaultファイルのパスを指定
.gitattributes
# *-vault.yml *.vault.yml などワイルドカードでも指定できる
sample.vault.yml diff=ansible-vault merge=binary
ファイルの差分を確認
これで、 git diff
で vault ファイルの差分を確認できるようになります。
$ git diff
diff --git i/sample.vault.yml w/sample.vault.yml
index 0a181e0..658372b 100644
--- i/sample.vault.yml
+++ w/sample.vault.yml
@@ -1,2 +1,2 @@
---
-hoge = hoge
+hoge = hogehoge
終わりに
ansible-vaultで暗号化されたファイルの差分が可視化されるようになり、うっかりミスに気づきやすくなりました。
参考
- .gitattributes, .gitconfig の仕様