यह पर्यावरण चर / संरचना के बारे में तरीकों और सलाह के बारे में एक बहुत व्यापक प्रश्न है। लेकिन आखिरकार मैं 'मेरे पर्यावरण चर को कैसे स्टोर करना चाहिए' के बहुत ही विशिष्ट प्रश्न के उत्तर की तलाश कर रहा हूं।
सबसे पहले कुछ स्पष्टीकरण:
- मेरे लिए एक वातावरण 3 से 10 सर्वरों तक हो सकता है और यह एक विशिष्ट ग्राहक के बुनियादी ढांचे को रखने का एक तरीका है।
- प्रत्येक वातावरण के अंदर कुछ चर होते हैं जो ज्यादातर कुछ प्रमुख इनपुट (नाम, आकार आदि) से स्वचालित रूप से उत्पन्न होते हैं।
जैसा कि यह अभी खड़ा है, हम अपने सभी पर्यावरण चर जैसे संरचना में संग्रहीत कर रहे हैं:
<playbook>.yml # Various playbooks for deployment
roles/windows # Ansible role for Ubuntu
roles/ubuntu # Ansible role for Ubuntu
config/hosts/<name>.yml # Ansible inventory
config/hosts/vars/<name>.json # Environment specific variables
अभी ऊपर के गिट रिपॉजिटरी में सबमॉड्यूल के रूप में कॉन्फ़िगर किया गया है। चूँकि परिवर्तनशील फ़ाइल में बार-बार परिवर्तन होता है, इस कारण डेटा में परिवर्तन होता है, एक बार, दो बार या तीन बार कमिट करने के बीच, परिवर्तन को ट्रेस करना अधिक कठिन होता है।
जैसा कि मैं व्यक्तिगत रूप से इसे आगे बढ़ता हुआ देख रहा हूं, हमें अपने सभी ग्राहक चर को केंद्रीकृत / स्केलेबल तरीके से संग्रहित करने की तलाश में होना चाहिए और फिर इसे एक गतिशील सूची के साथ ansible के साथ हुक करना चाहिए ।
मैं समझता हूं कि कुछ ऐसी प्रौद्योगिकियां हैं, जो कंसूल जैसी आवश्यकता के अनुसार काम कर सकती हैं, लेकिन वे ऐसे माहौल में सबसे अच्छा काम करती हैं, जो छोटे से बहुत भिन्न होने के बजाय एक बड़ा अनुप्रयोग प्रदान करता है।
मैं अनिवार्य रूप से हमें एक इन्वेंट्री स्क्रिप्ट लिखने के लिए देख रहा हूं और फिर हमारे सभी डेटा को कुछ नॉट-फॉर-उद्देश्य डेटाबेस में डाल दिया है और फिर कुछ भी नहीं बदला जा रहा है। मैं इसे एक अनुमान के तौर पर देख रहा हूं कि वर्तमान में हमारे द्वारा संग्रहित किए जाने वाले बहुत सारे डेटा पर संभावित रूप से ट्रिम हो सकता है और शायद डेटा को स्टोर करने के अलग-अलग तरीकों पर गौर करने के बजाय इसे फिर से कार्य करता है।
मुझे उम्मीद है कि किसी को कोड के रूप में बुनियादी ढांचे को लागू करने में किसी तरह का अनुभव होगा जब एक, दो या तीन विशाल लोगों के विपरीत बहुत सारे छोटे वातावरण से निपटना होगा।
कोई सुझाव?