सर्वर कॉन्फ़िगरेशन फ़ाइलों के लिए संशोधन नियंत्रण के उपयोग की अनुमति देने के लिए क्या समाधान मौजूद हैं? [बन्द है]


85

एक से अधिक सिस्टम एडमिनिस्ट्रेटर वाले वातावरण में, मुझे सर्वर कंट्रोल फाइल को रिवीजन कंट्रोल सिस्टम में जोड़ने के कुछ फायदे दिखाई देते हैं। सबसे उल्लेखनीय परिवर्तन को ट्रैक करने की क्षमता है, जिन्होंने उन्हें बनाया है, और निश्चित रूप से ज्ञात कामकाजी कॉन्फ़िगरेशन में वापस रोल करने में सक्षम है।

मैं मुख्य रूप से यूनिक्स / लिनक्स समाधानों में रुचि रखता हूं, लेकिन साथ ही विंडोज कार्यान्वयन के लिए उत्सुक होगा।


लगता है कि डुप्लिकेट या इस प्रश्न से बहुत संबंधित है serverfault.com/questions/3852/…
18

जवाबों:


52

मैंने कुछ समय के लिए घर पर (~ 3 मेजबान) यह परीक्षण किया है, विभिन्न scms (RCS, तोड़फोड़, गिट) की कोशिश कर रहा हूँ। सेटअप जो अभी मेरे लिए पूरी तरह से काम करता है वह setgitpermsहुक के साथ है ।

जिन चीजों पर आपको विचार करने की आवश्यकता है:

फ़ाइल अनुमतियों और स्वामित्व की हैंडलिंग

  • आरसीएस: यह मूल रूप से करता है
  • तोड़फोड़: पिछले मैंने कोशिश की, तो आप एक आवरण के आसपास की जरूरत svnयह करने के लिए
  • गिट: setgitpermsहुक इसे पारदर्शी रूप से संभालता है ( post-checkoutहुक के लिए समर्थन के साथ गिट के एक हालिया संस्करण की आवश्यकता है , हालांकि)

इसके अलावा, यदि आप अपने सभी /etcसंस्करण नियंत्रण में नहीं रखना चाहते हैं , लेकिन केवल उन फ़ाइलों को जिन्हें आपने वास्तव में संशोधित किया है (जैसे मैं), तो आपको एक scm की आवश्यकता होगी जो इस तरह के उपयोग का समर्थन करता है।

  • आरसीएस: वैसे भी केवल एक ही फाइल पर काम करता है।
  • तोड़फोड़: मुझे यह मुश्किल लग रहा था।
  • git: no probem, को " *" शीर्ष-स्तरीय .gitignoreफ़ाइल में डालें और केवल उन फ़ाइलों को जोड़ें जिन्हें आप उपयोग करना चाहते हैंgit add --force

अंत में, वहाँ के तहत कुछ समस्याग्रस्त निर्देशिका हैं /etcसंकुल config के टुकड़े ड्रॉप कर सकते हैं जहां कि फिर कुछ प्रोग्राम या डेमॉन (द्वारा पढ़ा जाता है /etc/cron.d, /etc/modprobe.d, आदि)। इनमें से कुछ प्रोग्राम आरसीएस फ़ाइलों (जैसे क्रोन) को अनदेखा करने के लिए पर्याप्त स्मार्ट हैं, कुछ नहीं हैं (उदाहरण के लिए modprobe)। .svn निर्देशिकाओं के साथ एक ही बात । फिर से गिट के लिए एक बड़ा प्लस (केवल एक शीर्ष-स्तरीय .git निर्देशिका बनाता है )।


1
तोड़फोड़ की जरूरत है asvn svn.collab.net/repos/svn/trunk/contrib/client-side/asvn । पुरालेख SVN (asvn) फ़ाइल प्रकारों की रिकॉर्डिंग की अनुमति देगा जो सामान्य रूप से svn द्वारा संभाला नहीं जाता है। वर्तमान में इसमें डिवाइस, सिमलिंक और फाइल ओनरशिप / परमिशन शामिल हैं।
क्रिस्टियन सियुपिटु

क्या आपने कहीं भी लिखा है कि आपके द्वारा उपयोग किए गए हुक को कैसे सेटअप करना है, ect?
ग्रूफ़टेक

एक छोटा राइटअप
8jean

यहाँ आर्क लिनक्स एआरएम में इस तरह से कुछ स्थापित करने के बारे में एक पोस्ट है, यहां भी समान रूप से लागू होना चाहिए। zduck.com/2012/storing-your-raspberry-pi-config-in-git
sil__thought

28

मैंने इसे अनौपचारिक रूप से git के साथ किया है, लेकिन वहाँ भी एटकीपर प्रोजेक्ट है जो अधिक संपूर्ण और विस्तृत कार्यान्वयन है।


4
एटकीपर वास्तव में अच्छा है - यह अनुमतियों को बहाल करने (जीआईटी, एचजी, आदि द्वारा समर्थित नहीं) को संभालता है और आपकी पसंद के बैकेंड (गिट, एचजी, बाजार, आदि) का समर्थन करता है। एपीटी में भी एकीकरण है ताकि हर बार जब आप एप्ट-गेट ऑपरेशन करते हैं, तो / आदि रिपोजिटरी प्रतिबद्ध होता है, और रात भर चलता है। मैंने इसे थोड़ी देर के लिए उपयोग किया है और कुल मिलाकर यह वैनिला वीसीएस का उपयोग करने की तुलना में बहुत बेहतर है, यदि केवल अनुमति सुविधा के लिए।
रिचवेल

23

एक अन्य विकल्प एक स्वचालित सर्वर कॉन्फ़िगरेशन टूल का उपयोग करना है, जैसे कि आपके सर्वर कॉन्फ़िगरेशन को एक घोषणात्मक भाषा में स्क्रिप्ट करने के लिए कठपुतली या कॉफ़ेंगिन

यह फ्रंट-एंड पर अतिरिक्त काम है, लेकिन कठपुतली जैसी उपयोगिता का उपयोग करके आप बहुत कम मानवीय हस्तक्षेप वाले सर्वर को स्वचालित रूप से पुनर्निर्माण और कॉन्फ़िगर कर सकते हैं।


5
हां, लेकिन आपको अपने कठपुतली / CFengine कॉन्फिगरेशन को भी रिविजन करना चाहिए। मैं आउटपुट को नियंत्रित करने वाले संशोधन को भी नियंत्रित करता हूं ताकि आप इस सवाल का जवाब दे सकें कि " तारीख x पर कॉन्फिग क्या था ?" के रूप में अच्छी तरह से "क्या कठपुतली के अनुसार विन्यास होना चाहिए था?", और विन्यास प्रबंधन प्रणाली के समस्या निवारण के लिए आउटपुट के साथ आदान-प्रदान।
रॉब चंटर

10

मैं एटकीपर के साथ प्रयोग कर रहा हूं जो बहुत अच्छी तरह से काम करता है। मुझे एक केंद्रीकृत सर्वर की आवश्यकता नहीं है, जो कुछ स्थितियों में महत्वपूर्ण हो सकता है। आप कई अलग-अलग डीवीसीएस बैकएंड का उपयोग कर सकते हैं, जिससे आप वह चुन सकते हैं जिससे आप सबसे ज्यादा परिचित हैं। यह मेरे लिए बहुत अच्छा काम करता है, लेकिन मैंने अन्य टेक प्राप्त करने की कोशिश नहीं की है जहां मैं अभी तक इसका उपयोग शुरू करने के लिए काम करता हूं।


6

मैं हाल ही में बावर्ची में देख रहा हूँ । यह न केवल टेम्परटेबल (.erb) को वर्जन कंट्रोल में रखता है, बल्कि आपको एक्शन करने की अनुमति देता है (जैसे कि आप नोड पर कॉनफिगरेशन अपलोड करने के बाद किसी सर्विस को रीस्टार्ट करना चाहते हैं)। बावर्ची पैकेज प्रबंधन के साथ मदद करता है ताकि आप किसी भी नोड के साथ निर्भरता को सत्यापित कर सकें जो आप के साथ इंटरफेस है (यानी sudo पैकेज स्थापित है)। रूबी में रसोइया आसानी से एक्स्टेंसिबल लगता है, इसलिए यदि आपके पास कोई कस्टम प्रक्रिया है तो आप इसे प्रदान की गई रूपरेखा के भीतर ही लिख सकते हैं।

लेकिन अभी भी यह कोशिश नहीं की है और आपको उचित रत्नों के साथ रूबी को क्लाइंट और सर्वर पर स्थापित करना होगा (यह वास्तव में उतना कठिन नहीं है)। कुल मिलाकर एक साथ कई सर्वरों को प्रबंधित करना वास्तव में आसान लगता है।


हम शेफ का उपयोग भारी (60+ सर्वर) काफी पर्याप्त रूप से करते हैं। सभी व्यंजनों और कॉन्फ़िगर फ़ाइलों को तोड़फोड़ में जाँच की जाती है।
ऑर्गेनोवेगी

3

मैं अपने बुनियादी ढांचे में कठपुतली को लागू करने की प्रक्रिया में हूं, और इसके डेटा को संस्करण नियंत्रण में रखने के लिए बहुत अनुकूल है।

मैं मर्क्यूरियल को पसंद करता हूं क्योंकि यह केवल कुछ मेटाडेटा के साथ फाइलों का संग्रह है जिसे छिपी निर्देशिकाओं में संग्रहीत किया गया है (प्रबंधन करने में आसान, समझने में आसान, उपयोग करने में आसान)।

मेरी कठपुतली फाइलें / usr / स्थानीय / आदि / कठपुतली / (FreeBSD 7.1) हैं। यह सब इसमें मर्क्यूरियल को जोड़ने के लिए लिया गया:

> cd /usr/local/etc/puppet
> hg init

सभी परिवर्तन एक सरल "एचजी प्रतिबद्ध" के साथ प्रतिबद्ध हैं। यदि कोई परिवर्तन कुछ हो जाता है, तो मैं फ़ाइल के दिए गए संस्करण में हर एक सर्वर को वापस ला सकता हूं (जैसे, sudoers) एक ही आदेश के साथ।

मर्क्यूरियल के लिए महान परिचय


3

मैं अपने द्वारा प्रबंधित सर्वर पर सबवर्सन का उपयोग कर रहा हूं। ठीक काम करता है। मैंने ट्राक उदाहरण भी स्थापित किया है , इसलिए हमारे पास समयरेखा दृश्य, टिकटिंग प्रणाली, ब्राउज़िंग आदि है।

सीलिंक, क्रोन और तोड़फोड़ का उपयोग करके मैंने भी तोड़फोड़ रिपॉजिटरी के आधार पर स्वचालित कॉन्फ़िगरेशन वितरण की स्थापना की है, जहां हर लिनक्स सर्वर svn updateस्क्रिप्ट (जैसे फ़ायरवॉल स्क्रिप्ट) के साथ एक रिपॉजिटरी का उपयोग करता है।


2

यहां एक वास्तविक जीवन उपयोग मामला है: 4 विभिन्न सर्वरों पर कॉन्फ़िगरेशन फ़ाइलों का प्रबंधन करने के लिए उपयोग किया गया तोड़फोड़। मैं कॉन्फ़िगरेशन फ़ाइलों के लिए संस्करण नियंत्रण का उपयोग करने की सलाह दूंगा क्योंकि आप उन्हें कोड के साथ उपयोग करेंगे - यह एक बैकअप और एक पूर्ववत बटन है। अगर मैं सर्वरों की एक बड़ी मात्रा का प्रबंधन कर रहा था और वे कॉन्फ़िगरेशन के संदर्भ में बहुत करीब थे, तो मैं प्यूपेट जैसी किसी चीज़ का उपयोग बेरेरिच के उत्तर में विस्तृत रूप से करूंगा।

विचार यह है कि आपके पास एक रिपॉजिटरी हो सकती है जिसे आप सर्वर पर विशिष्ट फ़ोल्डर चेकआउट कर सकते हैं (उदाहरण के लिए / var / name /) इसलिए मेरे पास एक इतिहास और कॉन्फ़िगरेशन फ़ाइलों का बैकअप है (यदि आप गलती करते हैं तो बैकअप एक बोनस है। GUI कॉन्फ़िगरेशन एप्लिकेशन का उपयोग करने से जो मैक ओएस एक्स सर्वर खांसी में आपके एडिटेड कफ सर्वर एडमिन को मिटा देता है )। फिर इसे एक परीक्षण सर्वर पर परीक्षण करना आसान है और बाद में फ़ाइलों के साथ उत्पादन सर्वर को अपडेट करना है जो फ़ाइलों को मैन्युअल रूप से कॉपी किए बिना काम करते हैं।


1

मैंने कुछ साल पहले ऐसा करने के लिए एक प्रोजेक्ट बनाया है: Savon

यह फ़ाइलों को संग्रहीत करने के लिए तोड़फोड़ का उपयोग करता है, और इसमें कुछ अतिरिक्त विशेषताएं हैं, जैसे कि स्वामित्व, अनुमतियां और SELinux संदर्भ ट्रैक करना। यह आपको परतों में अपने फ़ाइल सिस्टम परिवर्तनों को तार्किक रूप से विभाजित करने की भी अनुमति देता है, इसलिए आप उदाहरण के लिए उन परिवर्तनों को ट्रैक कर सकते हैं, जिन्हें आपके सभी वेब सर्वरों पर अलग से जाना चाहिए।


0

तोड़फोड़ सेटअप और उपयोग करने के लिए बहुत आसान है और बहुत सारे संसाधन हैं:

बेसिक कैसे-कैसे

एसवीएन बुक

दस्तावेज़ प्रबंधन अवलोकन


मैं सहमत हूँ, अगर आप विंडोज़ चेकआउट टोटस स्वन का उपयोग कर रहे हैं, तो इसका उपयोग करना बहुत सरल है।
तत्व

0

हमारे अधिकांश परिवर्तन हमारी हेल्प डेस्क प्रणाली के साथ प्रबंधित होते हैं, यहां तक ​​कि नियमित रखरखाव प्रकार के सामान के लिए भी। हम अपने प्रलेखन को धीरे-धीरे अपने उपयोग के लिए विकी में ले जा रहे हैं, और हम उपयोगकर्ताओं को समाप्त करने के लिए क्या प्रकाशित करते हैं। कॉन्फ़िगरेशन परिवर्तन और इसके पीछे की चर्चा को पोस्ट करना, हमारे इंट्रानेट पर खुला होना अच्छा है।


0

कई सालों तक मैंने उन फ़ाइलों के लिए rcs का उपयोग किया, जिन्हें मैंने संशोधित करना शुरू किया था, लेकिन कुछ साल पहले मैंने git नियंत्रण के तहत पूरी / आदि डालना शुरू कर दिया था। इसे दानेदार गोलियों में फ़ाइलों की जांच के लिए कुछ काम की आवश्यकता होती है (कुछ समय मैं एक विशाल "विभिन्न अपडेट" चेकइन का सहारा लेता हूं), और मैंने इसकी मदद करने के लिए कुछ स्क्रिप्ट लिखी हैं, लेकिन उल्लेख किया गया एटकीपर बहुत दिलचस्प लगता है, मैं तुरंत कोशिश करूंगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.