ansible vault ファイルで実際の git commit の変更を確認したいと思います。
これを達成する簡単な方法はありますか?
ansible vault ファイルで実際の git commit の変更を確認したいと思います。
これを達成する簡単な方法はありますか?
カスタムgit diff ドライバーgit logと.git diff.gitattributes
.vault_passwordボールトのパスワードが にあること、およびそのファイルがコミットされていないことを確認してください。これも に追加する必要があります.gitignore。.gitattributesansible-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))