2015-04-29 8 views

उत्तर

26

से atk-git-diff उपयोगिता का उपयोग कर सकते हैं आप वें कर सकते हैं बहुत अच्छी तरह से है, ताकि सामान्य गिट उपकरण जैसे git log और git diff कस्टम गिट diff ड्राइवर और .gitattributes का उपयोग करके वॉल्ट की गई फ़ाइलों के अंदर देख सकें। आप भी .gitignore में जोड़ने चाहिए -

  • सुनिश्चित करें कि आपके तिजोरी पासवर्ड .vault_password में और जो उस फ़ाइल नहीं प्रतिबद्ध है बनाओ।
  • .gitattributes फ़ाइल जोड़ें जो आपके भंडार में किसी भी फाइल से मेल खाती है जो उत्तर-वॉल्ट से एन्क्रिप्ट की जाती है और उन्हें diff=ansible-vault विशेषता देता है। उदाहरण के लिए, मेरे पास है:

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

    तुम भी वाइल्डकार्ड पैटर्न का उपयोग कर सकते हैं - प्रत्येक पंक्ति, पैटर्न के पहले तत्व, .gitignore फ़ाइलों के रूप में वही नियम इस प्रकार है। merge=binary विकल्प गिट को बताता है कि इन फ़ाइलों के तीन-तरफा विलय करने का प्रयास न करें।

  • तो फिर तुम ansible-vault view को विशेषता diff=ansible-vault साथ फ़ाइलों के लिए diff ड्राइवर स्थापित करने के लिए:

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

और है कि यह होना चाहिए - जब Git फ़ाइलें आपके नमूने का मिलान की डिफ गणना कर रहा है, यह पहले उन्हें डिक्रिप्ट करेंगे।

+0

कैशिंग संवेदनशील जानकारी को रोकने के लिए एन्क्रिप्टेड फ़ाइलों के 3-तरफा विलय से गिट को रोकने और 'गिट कॉन्फ़िगरेशन diff.ansible-vault.cachetextconv false' से रोकने के लिए' मर्ज = बाइनरी 'फ़िल्टर जोड़ना भी अच्छा है: https: // selivan। github.io/2016/11/29/ansible-human-readable-git-diff-for-vault.html –

+0

मेरा 'पेजर' 'कम' के बजाय 'सबसे अधिक' था। 'गिट डिफ' को निष्पादित करने से मुझे 'वॉल्ट पासवर्ड:' प्रॉम्प्ट में फंस गया। मुझे 'गिट कॉन्फ़िगरेशन --global core.pager cat' – GMaster

+0

@ सेलिवानोव पावेल कमांड को चलाने के लिए धन्यवाद' बिल्ली 'चलाकर' बिल्ली 'का उपयोग करने के लिए अपने गिट पेजर को सेट करना पड़ा - मैंने इसका जवाब अपडेट कर दिया है। –

8

तो कुछ खुदाई के बाद मैंने गैर-तुच्छ समाधान का निर्माण किया।

सबसे पहले अपने वॉल्ट पासवर्ड को (.gitignored) .vault_password फ़ाइल में संग्रहीत करें।

निम्न उदाहरण में फ़ाइल inventory/group_vars/xyz/vault.yml के HEAD और HEAD~2 संस्करणों 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)) 
संबंधित मुद्दे