سؤال ما الحلول المتوفرة للسماح باستخدام التحكم في المراجعة لملفات تهيئة الخادم؟ [مغلق]


في بيئة مع العديد من مسؤولي النظام ، أرى بعض المزايا لإضافة ملفات تهيئة الخادم إلى نظام التحكم في المراجعة. أبرزها هي القدرة على تعقب التغييرات ، من صنعها ، وبالطبع القدرة على التراجع إلى تكوينات العمل المعروفة.

أنا مهتم بشكل أساسي بحلول يونيكس / لينكس ، ولكن سيكون فضولًا لعمليات تطبيق Windows أيضًا.


85
2018-05-06 17:46


الأصل


يبدو تكرارًا أو أن يكون مرتبطًا جدًا بهذا السؤال serverfault.com/questions/3852/... - Zoredache


الأجوبة:


لقد اختبرت هذا في المنزل (~ 3 مضيفين) لبعض الوقت الآن ، في محاولة مختلفة scms (RCS، Subversion، git). الإعداد الذي يعمل تماما بالنسبة لي هو git مع ال setgitperms صنارة صيد.

الأشياء التي تحتاج إلى النظر:

التعامل مع أذونات الملفات والملكية

  • RCS: هل هذا أصلا
  • التخريب: في الماضي حاولت ، كنت في حاجة إلى المجمع حولها svn لفعل هذا
  • بوابة: ال setgitperms ربط يعالج هذا بشفافية (يحتاج إلى حد ما النسخة الأخيرة من بوابة بدعم post-checkout خطافات ، مع ذلك)

أيضا ، إذا كنت لا ترغب في كل من الخاص بك /etc تحت التحكم في الإصدار ، ولكن فقط الملفات التي قمت بتعديلها بالفعل (مثلي) ، ستحتاج إلى SCM ذلك يدعم هذا النوع من الاستخدام.

  • RCS: يعمل فقط على ملفات واحدة على أي حال.
  • التخريب: لقد وجدت هذا صعبًا.
  • git: لا يوجد بروتيم ، ضع "*"في المستوى الأعلى .gitignore ملف وإضافة فقط تلك الملفات التي تريد استخدامها git add --force

أخيرا ، هناك بعض الدلائل إشكالية تحت /etc حيث يمكن أن تنخفض الحزم مقتطفات التهيئة التي يتم قراءتها بعد ذلك بواسطة بعض البرامج أو البرامج الخفية (/etc/cron.d، /etc/modprobe.d، وما إلى ذلك). بعض هذه البرامج ذكية بما يكفي لتجاهلها ملفات RCS (مثل cron) ، بعضها ليس (مثل modprobe). نفس الشيء مع .svn الدلائل. مرة أخرى زائد كبير ل git (فقط يخلق مستوى أعلى واحد .git دليل).


52
2018-05-06 18:23



التخريب يحتاج اسفين svn.collab.net/repos/svn/trunk/contrib/client-side/asvn. سيسمح الأرشيف SVN (asvn) بتسجيل أنواع الملفات التي لا تتم معالجتها عادة بواسطة svn. يتضمن هذا حاليًا الأجهزة والارتباطات الصوتية وملكية / أذونات الملفات. - Cristian Ciupitu
هل لديك كتابة في أي مكان يظهر كيفية إعداد الخطافات التي استخدمتها ، إلخ. - GruffTech
وشكاية قصيرة هنا: jottit.com/jg8h7 - 8jean
هنا وظيفة حول وضع شيء مثل هذا في ARM لينكس ARM ، يجب أن ينطبق بشكل جيد هنا. zduck.com/2012/storing-your-raspberry-pi-config-in-git - silent__thought


لقد فعلت ذلك بشكل غير رسمي مع بوابة ، ولكن هناك أيضا etckeeper المشروع الذي هو تنفيذ أكثر اكتمالا وتفصيلا.


28
2018-05-06 17:47



إن etckeeper جيد حقا - فهو يعالج الأذونات المستعادة (غير مدعومة من git، hg، etc) ويدعم الخلفية المفضلة لديك (بما في ذلك git، hg، bazaar، etc). كما أن هناك تكاملًا مع APT بحيث أنه في كل مرة تقوم فيها بعملية apt-get ، يلتزم المستودع / etc بالقيام بذلك بين عشية وضحاها. لقد استخدمت هذا لفترة من الوقت وبشكل عام أفضل بكثير من استخدام VCS الفانيليا ، إلا إذا كان ميزة الأذونات. - RichVel


خيار آخر هو استخدام أداة تكوين خادم تلقائي مثل دمية أو كفينغين لنصي تكوينات الخادم الخاص بك في لغة افتراضية.

إنه عمل إضافي في الواجهة الأمامية ، ولكن استخدام أداة مثل Puppet يسمح لك بإعادة إنشاء وتكوين خادم تلقائيًا بتدخل بشري قليل جدًا.


23
2018-05-06 18:03



نعم ، ولكن يجب عليك أيضًا مراجعة التحكم في تهيئة Puppet / CFengine. أنا أيضًا من المعجبين بمراجعة المخرجات بحيث يمكنك الإجابة على السؤال "ماذا كان التكوين في التاريخ x؟ "وكذلك" ماذا ينبغي أن يكون التكوين وفقا لدمية؟ "، وربط المدخلات مع المخرجات لاستكشاف نظام إدارة التكوين. - Rob Chanter


لقد تم تجريب etckeeper والتي يبدو أنها تعمل بشكل جيد. لا أحتاج إلى خادم مركزي ، قد يكون مهمًا في بعض المواقف. يمكنك استخدام العديد من الدعامات الخلفية DVCS المختلفة ، حتى تتمكن من اختيار الخلفية التي أنت على دراية بها. يبدو أنها تعمل بشكل جيد بالنسبة لي ، لكني لم أحاول الحصول على التكنولوجيا الأخرى حيث أعمل على البدء في استخدامها حتى الآن.


10
2018-05-06 18:10





لقد كنت أبحث في طاه مؤخرا. ليس فقط يبقي templatable (.erb) التكوين في التحكم في الإصدار ، ولكن يسمح لك بتنفيذ إجراءات (مثل إعادة تشغيل الخدمة بعد أن قمت بتحميل التكوينات إلى العقدة). الشيف يساعد في إدارة الحزم حتى تتمكن من ذلك تحقق التبعيات مع أي عقدة تتعامل مع (يجب أن يكون لديك حزمة sudo مثبتة). يبدو أن الشيف قابل للتوسعة بسهولة في Ruby ، ​​لذلك إذا كان لديك أي عمليات مخصصة ، يمكنك فقط كتابتها في إطار العمل المقدم.

ولكن مازلت لم تجرب ذلك وعليك تثبيت روبي على العميل والخادم مع الأحجار الكريمة المناسبة (وهذا في الحقيقة ليس من الصعب). عموما يبدو من السهل حقا لإدارة العديد من الخوادم دفعة واحدة.


6
2018-05-27 20:49



نحن نستخدم الشيف بغزارة (60+ خوادم) بنجاح. يتم التحقق من جميع الوصفات وملفات التهيئة في Subversion. - organicveggie


أنا في طور تنفيذ الدمية عبر بنيتنا التحتية ، وهي مواتية للغاية للحفاظ على بياناتها في التحكم في الإصدارات.

أنا أفضل Mercurial لأنها مجرد مجموعة من الملفات مع بعض البيانات الوصفية المخزنة في الدلائل المخفية (سهلة الإدارة ، وسهلة الفهم ، وسهلة الاستخدام).

ملفات My Puppet في / usr / local / etc / puppet / (FreeBSD 7.1). كل ما يتطلبه الأمر لإضافة Mercurial إليه:

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

يتم تنفيذ جميع التغييرات باستخدام "hg commit" بسيط. إذا تم تغيير شيء ما ، فيمكنك استرجاع كل خادم إلى إصدار محدد من الملف (على سبيل المثال ، sudoers) باستخدام أمر واحد.

مقدمة كبيرة ل Mercurial


3
2018-05-06 19:59





لقد تم استخدام Subversion على الخوادم التي أديرها. يعمل بشكل جيد. لقد أعددت أيضًا تراك على سبيل المثال ، لذلك لدينا عرض المخطط الزمني ، نظام التذاكر ، التصفح ، إلخ.

باستخدام symlinks و cron و defversion قمت أيضًا بإعداد توزيع التكوين التلقائي استنادًا إلى مستودع التخريب ، حيث يقوم كل خادم Linux بتحديث مستودع باستخدام svn update مع البرامج النصية (على سبيل المثال ، مخطوطات جدار الحماية).


3
2018-05-07 16:19





ها هي حالة استخدام الحياة الحقيقية: Subversion المستخدمة لإدارة ملفات التكوين على 4 خوادم مختلفة. إنني أوصي باستخدام التحكم في الإصدار لملفات التكوين لنفس السبب الذي تستخدمه مع الرمز - إنه نسخة احتياطية وزر تراجع في الكل. إذا كنت أدير كمية أكبر من الخوادم وكانوا أقرب بكثير من حيث التكوين ، فسأستخدم شيئًا مثل Puppet كما هو مفصل في إجابة berberich.

الفكرة هي أنه يمكن أن يكون لديك مستودع واحد يمكنك من خلاله فحص مجلدات معينة على الخوادم (على سبيل المثال. / var / named /) بحيث يكون لدي كلاهما سجل ونسخة احتياطية من ملفات التكوين (النسخ الاحتياطي هو مكافأة إذا ارتكبت الخطأ باستخدام تطبيق تهيئة واجهة المستخدم الرسومية الذي يمسح الإضافات المحررة يدويًا سعال مسؤول الخادم في نظام التشغيل Mac OS X Server سعال). ومن ثم يكون من السهل اختبارها على خادم اختبار وتحديث خادم الإنتاج لاحقًا باستخدام الملفات التي تعمل بدون نسخ الملفات يدويًا.


2
2018-05-06 19:11





لقد قمت بإنشاء مشروع منذ بضع سنوات للقيام بهذا بالضبط: سافون

يستخدم هذا البرنامج التخريب لتخزين الملفات ، ويحتوي على بعض الميزات الإضافية ، مثل تتبع الملكية والأذونات وسياق SELinux. كما يسمح لك أيضًا بتقسيم تغييرات نظام الملفات في الطبقات منطقياً ، بحيث يمكنك على سبيل المثال تتبع التغييرات التي يجب أن تذهب إلى جميع خوادم الويب بشكل منفصل.


1
2018-05-12 07:13





التخريب سهل جدا في الإعداد والاستخدام وهناك الكثير من الموارد:

كيف الأساسية

كتاب SVN

نظرة عامة على إدارة الوثائق


0
2018-05-06 17:58



أوافق ، إذا كنت تستخدم windows checkout tortise svn ، بسيط جدا للاستخدام. - Element