हम अपने Ansible Playbook git रिपॉजिटरी में पासवर्ड, प्रमाण पत्र के लिए निजी कुंजी आदि को संग्रहीत करने के लिए Ansible Vault का उपयोग कर रहे हैं । हमारे सभी मौजूदा निजी डेटा टेक्स्ट फॉर्म में हैं, इसलिए हम इसे वेरिएबल्स में स्टोर कर सकते हैं। फिर इनका उपयोग टेम्पलेट्स में या contentकॉपी मॉड्यूल के पैरामीटर के साथ किया जाता है ।
अब, हमारे पास एक जावा कीस्टोर फाइल है, जो दुखद रूप से एक द्विआधारी प्रारूप है। जैसे, यह एक चर के अंदर संग्रहीत नहीं किया जा सकता है - या कम से कम मुझे नहीं पता कि यह कैसे करना है। यह आसान तरीका होगा कि हमारी फ़ाइल ठीक से एन्क्रिप्ट की गई हो, जबकि यह git में टिकी हो, लेकिन उपलब्ध होने पर ansible-playbook?
मैंने पहले ही सफलता के बिना क्या करने की कोशिश की है:
- बेस 64 में बाइनरी फ़ाइल को एनकोड करना, एन्कोडेड डेटा को एक चर में संग्रहीत करना और टेम्पलेट मॉड्यूल का उपयोग करना
{{base64_data | b64decode}}।EF BF BDपरिणामस्वरूप फ़ाइल के हेक्स डंप के बहुत सारे की ओर जाता है । तीन बाइट्स यूटीएफ -8 में यूनिकोड रिप्लेसमेंट चरित्र को एनकोड करते हैं, इसलिए बाइनरी डेटा को टेक्स्ट के रूप में व्याख्या करने के साथ एक समस्या है। - बेस 64 में बाइनरी फ़ाइल को एनकोड करना, एन्कोडेड डेटा को एक चर में संग्रहीत करना और कॉपी मॉड्यूल का उपयोग करना
content="{{base64_data | b64decode}}"। "एक चर मॉड्यूल मॉड्यूल में एक नया पैरामीटर डाला" के साथ Ansible शिकायत करता है। दोहरे उद्धरण-चिह्नों के बजाय एकल उद्धरणों का उपयोग करते समय, अंसिबल ने "त्रुटि पार्सिंग तर्क स्ट्रिंग", और टर्मिनल पर डंप किए गए सभी बाइनरी डेटा की एक प्रतिलिपि के साथ शिकायत की ...