¿Cómo se modifican los cambios de la bóveda ansible?

Me gustaría ver que el git real cometa cambios en el file ansible vault.

¿Hay alguna manera fácil de lograr esto?

Puedes hacer esto muy bien, para que las herramientas normales de git como git log y git diff puedan ver dentro de los files abovedados, usando un controller de git diff personalizado y .gitattributes .

  • Asegúrese de que la contraseña de su bóveda esté en .vault_password y de que ese file no esté comprometido; también debe agregarlo a .gitignore .
  • Agregue un file .gitattributes que coincida con cualquier file en su repository que esté encryption con ansible-vault y .gitattributes el atributo diff=ansible-vault . Por ejemplo, tengo:

     env_vars/production.yml diff=ansible-vault merge=binary env_vars/staging.yml diff=ansible-vault merge=binary 

    También puede usar patrones wildcarded: el primer elemento de cada línea, el patrón, sigue las mismas reglas que los files .gitignore . La opción merge=binary le dice a git que no intente hacer una combinación tripartita de estos files.

  • Luego debe configurar el controller de diff para los files con atributo diff=ansible-vault en la ansible-vault view :

     git config --global diff.ansible-vault.textconv "ansible-vault view" 

Y eso debería ser – cuando git está calculando diferencias de los files que coincide con tu patrón, primero los descifrará.

Entonces, después de excavar, construí la solución no trivial.

En primer lugar, almacene su contraseña de bóveda en el file .vault_password (contraseña) .vault_password .

En el siguiente ejemplo, HEAD y HEAD~2 versiones del file inventory/group_vars/xyz/vault.yml son vimdiff-ed:

 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)) 

Puede usar la utilidad atk-git-diff desde https://github.com/dellis23/ansible-toolkit

Esta

Se convierte