Edited at

ansible-vaultで暗号化したファイルの差分をgit diffで確認する

More than 1 year has passed since last update.


はじめに

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で暗号化されたファイルの差分が可視化されるようになり、うっかりミスに気づきやすくなりました。


参考