मैं उत्तरदायी वॉल्ट फ़ाइल में वास्तविक गिट प्रतिबद्ध परिवर्तन देखना चाहता हूं।उत्तरदायी वॉल्ट परिवर्तनों को कैसे भिन्न किया जाए?
क्या यह हासिल करने का कोई आसान तरीका है?
मैं उत्तरदायी वॉल्ट फ़ाइल में वास्तविक गिट प्रतिबद्ध परिवर्तन देखना चाहता हूं।उत्तरदायी वॉल्ट परिवर्तनों को कैसे भिन्न किया जाए?
क्या यह हासिल करने का कोई आसान तरीका है?
से 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 फ़ाइलें आपके नमूने का मिलान की डिफ गणना कर रहा है, यह पहले उन्हें डिक्रिप्ट करेंगे।
तो कुछ खुदाई के बाद मैंने गैर-तुच्छ समाधान का निर्माण किया।
सबसे पहले अपने वॉल्ट पासवर्ड को (.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))
कैशिंग संवेदनशील जानकारी को रोकने के लिए एन्क्रिप्टेड फ़ाइलों के 3-तरफा विलय से गिट को रोकने और 'गिट कॉन्फ़िगरेशन diff.ansible-vault.cachetextconv false' से रोकने के लिए' मर्ज = बाइनरी 'फ़िल्टर जोड़ना भी अच्छा है: https: // selivan। github.io/2016/11/29/ansible-human-readable-git-diff-for-vault.html –
मेरा 'पेजर' 'कम' के बजाय 'सबसे अधिक' था। 'गिट डिफ' को निष्पादित करने से मुझे 'वॉल्ट पासवर्ड:' प्रॉम्प्ट में फंस गया। मुझे 'गिट कॉन्फ़िगरेशन --global core.pager cat' – GMaster
@ सेलिवानोव पावेल कमांड को चलाने के लिए धन्यवाद' बिल्ली 'चलाकर' बिल्ली 'का उपयोग करने के लिए अपने गिट पेजर को सेट करना पड़ा - मैंने इसका जवाब अपडेट कर दिया है। –