ansible vault ファイルで実際の git commit の変更を確認したいと思います。
これを達成する簡単な方法はありますか?
ansible vault ファイルで実際の git commit の変更を確認したいと思います。
これを達成する簡単な方法はありますか?
カスタムgit diff ドライバーgit log
と.git diff
.gitattributes
.vault_password
ボールトのパスワードが にあること、およびそのファイルがコミットされていないことを確認してください。これも に追加する必要があります.gitignore
。.gitattributes
ansible-vault で暗号化されたリポジトリ内の任意のファイルに一致するファイルを追加し、属性を付与しますdiff=ansible-vault
。たとえば、私は持っています:
env_vars/production.yml diff=ansible-vault merge=binary
env_vars/staging.yml diff=ansible-vault merge=binary
ワイルドカード パターンを使用することもできます。各行の最初の要素であるパターンは、.gitignore
ファイルと同じ規則に従います。このmerge=binary
オプションは、これらのファイルの 3 者間マージを試行しないように git に指示します。
次に、属性diff=ansible-vault
を持つファイルの差分ドライバーを次のように設定する必要がありますansible-vault view
。
git config --global diff.ansible-vault.textconv "ansible-vault view"
それだけです。git がパターンに一致するファイルの差分を計算するとき、最初にそれらを復号化します。
そのため、掘り下げた後、自明ではないソリューションを構築しました。
まず、vault のパスワードを (.gitignored).vault_password
ファイルに保存します。
次の例では、ファイルの aHEAD
およびHEAD~2
バージョン inventory/group_vars/xyz/vault.yml
が vimdiff されています。
vimdiff \
<(ansible-vault view --vault-password-file=.vault_password \
<(git show HEAD:inventory/group_vars/xyz/vault.yml)) \
<(ansible-vault view --vault-password-file=.vault_password \
<(git show HEAD~2:inventory/group_vars/xyz/vault.yml))