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


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

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


85
2018-05-06 17:46


मूल


डुप्लिकेट लगता है या इस सवाल से बहुत संबंधित है serverfault.com/questions/3852/... - Zoredache


जवाब:


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

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

फ़ाइल अनुमतियों और स्वामित्व का प्रबंधन

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

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

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

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


52
2018-05-06 18:23



Subversion एएसवीएन की जरूरत है svn.collab.net/repos/svn/trunk/contrib/client-side/asvn। पुरालेख एसवीएन (एएसवीएन) फाइल प्रकारों की रिकॉर्डिंग की अनुमति देगा जो आमतौर पर svn द्वारा नियंत्रित नहीं होते हैं। वर्तमान में इसमें डिवाइस, सिम्लिंक और फ़ाइल स्वामित्व / अनुमतियां शामिल हैं। - Cristian Ciupitu
क्या आपके पास कहीं भी लिखना है कि आप किस हुक को इस्तेमाल करते हैं, ect। - GruffTech
एक संक्षिप्त लेखन यहां है: jottit.com/jg8h7 - 8jean
आर्क लिनक्स एआरएम में इस तरह कुछ स्थापित करने के बारे में एक पोस्ट यहां दी गई है, यहां समान रूप से अच्छी तरह से आवेदन करना चाहिए। zduck.com/2012/storing-your-raspberry-pi-config-in-git - silent__thought


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


28
2018-05-06 17:47



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


एक और विकल्प एक स्वचालित सर्वर विन्यास उपकरण का उपयोग करना है कठपुतली या Cfengine एक घोषणात्मक भाषा में अपने सर्वर विन्यास को स्क्रिप्ट करने के लिए।

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


23
2018-05-06 18:03



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


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


10
2018-05-06 18:10





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

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


6
2018-05-27 20:49



हम काफी हद तक शेफ को भारी (60+ सर्वर) का उपयोग करते हैं। सब व्यंजनों और विन्यास फाइलों को सबवर्जन में चेक किया जाता है। - organicveggie


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

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

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

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

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

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


3
2018-05-06 19:59





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

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


3
2018-05-07 16:19





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

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


2
2018-05-06 19:11