توضيح: تم تكوين الحل لـ D-Link DFL و cisco 29xx و WatchGuard Firebox ، ولكنه مناسب لكل شيء يمكنه النسخ الاحتياطي عند الاتصال عبر ssh و / أو تحميلها على جدول زمني / حدث إلى خادم ftp / tftp.
بدأ كل شيء بحقيقة أن صديقي مبرمج سأل: "لماذا لا تخزن تكوينات الشبكة في نظام التحكم في الإصدار؟" والحقيقة - فكرت - لماذا؟ يمكن تنزيل معظم ملفات التكوين بتنسيق نصي (حسنًا ، هذه ثنائيات ، بالطبع ، ولكن يتم فتح المعلومات القابلة للقراءة وعرضها في محرر نصي).
على الشبكة ، لدينا حوالي 30 DFLs دي لينك مختلفة ، وعشرات من سيسكو 29xx واثنين من WatchGuard Firebox. بالنسبة لكل جهاز ، يتمتع الموظفون على مستوى المسؤول في فرع تكنولوجيا المعلومات ، حيث يوجد ، بالإضافة إلى تقنية المعلومات في المكتب الرئيسي ، بوصول إلى مستوى المسؤول. يستلزم ذلك مشكلات مثل "لم أقم بنسخة احتياطية لمدة ستة أشهر وكسرت كل شيء ، هل لديك نسخة احتياطية لدينا؟" و "المعدات التي تم حرقها في آخر نسخة احتياطية فعلت المشرف السابق ، ولا أعرف أين ، وقم بتكويننا كما كان". وإذا كانت شركة سيسكو تعيد بالفعل ضبط إعدادات التشغيل تلقائيًا على بروتوكول نقل الملفات في كل مرة يتم حفظها ، فلن يكون هذا هو الحال مع D-Link. وسيساعد نظام التحكم في الإصدار على تتبع مشاكل مثل "لا أتذكر ماذا ومتى قمت بتغييره ، لكن لدينا شيء يستخدم مرة واحدة في الشهر". تنظيم النسخ الاحتياطي لا ينقذك من العامل البشري ولا يحفظ نسخة احتياطية لك ، لذلك من الأفضل التحذير منه عدم فك الارتباط.
أعترف بأمانة ، قبل أن أجلس لكتابة منشور ، لم أكن أعرف عن زنجي وأكسدة. لكن كلاهما لا يعرف ما أحتاجه بالكامل. الأولى موجهة إلى سيسكو ولا تعمل بشكل جيد مع أي شيء غريب ، والثاني ليس لديه إذن المستخدم (على الرغم من أن هذا يمكن أن يتم عن طريق التلاعب البسيط مع خادم الويب) ، والأهم من ذلك ، كلاهما يتطلب تسجيل الدخول وكلمة المرور للنظام المكرر. جميع مدافع DFL-link تدعم تسجيل الدخول ssh. تقوم Cisco بدمج النسخ الاحتياطية نفسها ولا تتطلب اتصالًا بشكل عام. وفقًا لذلك ، لماذا تتغير كلمات المرور بشكل دوري ، علاوة على ذلك ، إذا كان يمكنك تسجيل الدخول باستخدام المفتاح.
تقرر أن أفعل شيئًا يناسبني بمفردي.
في الواقع ، النسخ الاحتياطي التلقائي التسول لفترة طويلة. لكن نظام التحكم الإصدار - كان جديدا.
لذا ، فإن المهمة: لجمع جميع التكوينات المهمة من معدات الشبكة في مكان واحد مع دعم لإصدار الملفات ، وتحديثها بانتظام هناك ، للسماح للمسؤولين في منطقة زمنية أخرى لتنزيلها بطريقة بسيطة ، دون الاتصال بي في 3 في الصباح. كل هذا ، بالطبع ، مجاني.بالنسبة لجميع DFLs ، يُطلق على ملف التكوين نفس الشيء ، لذلك كان من الضروري تسميته بوضوح عند النسخ. كما أنني لم أرغب في إعادة تكوين نظام تعبئة التكوين الحالي لتشغيل بروتوكول نقل الملفات مع cisco.
أولاً ، قم بإعداد نظام التحكم في الإصدار
أخذت SVN ، المعارف التقليدية. svn هو الوحيد المشهور الذي يخزن ثنائيات الفرق ، وليس كل الملفات في التاريخ. ليس هذا هو المهم على مجلدات صغيرة ، ولكن لطيفة. بشكل عام ، أنا آخذ في الاعتبار كمية صغيرة من ملفات التكوين ، والتي نظام التحكم في الإصدار لاتخاذ - لا فرق.
تم تثبيت خادم Visual SVN من
الموقع الرسمي باستخدام طريقة الإعداد الجاهز. أضعه على خادم تحت Windows ، بحيث كان من السهل على الزملاء إدارة (إنشاء مستخدمين ، وتوزيع حقوق). بعد ذلك ، يتم إنشاء مستودع ، ويتم إنشاء الأقسام اللازمة فيه ويتم إنشاء المستخدم الوحيد الذي يتمتع بحقوق كاملة في المستودع (الآن). على ويندوز ، يتم الانتهاء من الإجراءات.
يتم إجراء النسخ الاحتياطي التلقائي بواسطة جهاز Linux واحد (تحت Debian).
أولاً ، قمنا بتعيين svn بحيث يكون لدينا عميل:
sudo apt-get install svn
الآن يتم إنشاء نسخة من المشروع باليد (تم إنشاؤها في الدليل الحالي):
svn checkout https://servername.mydomain.ru/svn/DFL_BACKUPS/ DFL_BACKUPS --username go
لدي الآن ثلاثة أقسام في المستودع:
- Current_backup ، حيث يتم تخزين تكوينات D-Link DFL والكتابة فوقها.
- Old_versions ، حيث يتم تخزين التكوينات ذات التاريخ المحدد لسهولة التنزيل بواسطة مسؤولي الفروع.
- Cisco ، حيث يتم تخزين تكوينات cisco و WatchGuard Firebox (جيدًا ، لقد حدث ذلك).
لنبدأ مع النسخ الاحتياطي التلقائي لـ DFL وإعداد DFL نفسه
اتصال يذهب على سه. من أجل عدم تألق كلمات المرور بشكل مفتوح ، يتم استخدام زوج مفاتيح عام-خاص. يتم تخزين الخاص على الخادم في / usr / dfl_scripts / sshkeys / dfl_key.
نقوم بإنشاء زوج من المفاتيح العامة والخاصة على خادم النسخ الاحتياطي التلقائي:
ssh-keygen –t rsa
يتم سكب المفتاح المفتوح في جميع DFLs ويتم إجراء قاعدة الوصول ssh:


حسنًا ، يُسمح بالإدارة عن بُعد المقابلة. يمكن تغيير المنفذ من الافتراضي إلى ، على سبيل المثال ، 2222 ، على الرغم من أن الوصول ممكن فقط من عناوين معينة.

يقع الملف ذي التكوين الحالي لـ D-Link DFL في الجذر ويُسمى config.bak ، ويمكنك ببساطة نسخه إلى نفسك باستخدام scp.
لذا ، البرنامج النصي (قمت بقص قائمة الفروع بحيث لم تكن هناك ورقة):
النص مكتوب في cron ويعمل الساعة 8:30 صباحًا يوميًا. هذا هو ما يشبه crontab:
30 08 * * * /usr/dfl_scripts/autobackup.sh 30 06 * * * /usr/dfl_scripts/ciscobackup.sh 00 06 * * 1 /usr/dfl_scripts/fireboxbackup.sh
الآن عن سيسكو
على الأجهزة نفسها ، يتم تكوين شيء مثل هذا:
archive log config logging enable logging size 500 hidekeys path ftp://ftp.mydomain.ru/in/autolog/$H-$T write-memory ip ftp username user ip ftp password mypass ip scp server enable
نتيجة لذلك ، يعيد أمر كتابة الذاكرة التكوين الحالي إلى ftp. يوجد ملف ftp الخاص بي على خادم مختلف عن مجموعة من النسخ الاحتياطية التلقائية. هناك طريقتان: إنشاء نسخة من المستودع على ذلك الخادم وإضافة التكوينات هناك أو نسخ التكوينات إلى خادم مجاور. في الأساس ، فإن الفرق كله هو ما إذا كنت تريد فعل cp أو scp.
في الدليل حيث تقع التكوينات مع cisco ، أضع incron لمراقبة ظهور الملفات. من خلال ظهور الملف ، أعيد تسميته كما يجب ونسخه إلى خادم مجمّع النسخ الاحتياطي التلقائي في دليل مؤقت. عن طريق القطع ، يتم تحميل الملفات من الدليل المؤقت إلى svn. في المجموع ، لدي في نظام التحكم في الإصدار تهيئة محدثة لفترة معينة مرة واحدة في اليوم. في رأيي ، هذا يكفي ، ولكن يمكن تعديل النظام دون أي مشاكل لأي قائمة مفضلة.
يبدو التكوين الإضافي بالشكل التالي:
/var/ftp/cisco/in/autolog/ IN_CREATE /usr/ftp_scripts/incron_cisco.sh $# $%
البرنامج النصي نفسه:
يتم تشغيل البرنامج النصي المجدول على خادم النسخ الاحتياطي التلقائي وفقًا للجدول:
كما ترون ، نحن هنا نتحدث أيضًا عن WatchGuard Firebox. كنت كسول بصراحة لعمل دليل منفصل لهم. لذلك تقع النسخ الاحتياطية على بروتوكول نقل الملفات إلى نفس مكان شركة سيسكو. النسخ الاحتياطي WatchGuard في برنامج نصي منفصل قبل نصف ساعة وعموما مرة واحدة في الأسبوع. يرجى ملاحظة أن بناء الجملة قد تغير من إصدار البرنامج الثابت 12. في السابق ، يمكن القيام بذلك من خلال صورة احتياطية واحدة إلى أمر ftp ، وقد تمت إضافة التصدير الآن. على ذلك ، لم أتمكن من تكوين تسجيل الدخول عبر ssh حسب المفتاح ، لذلك يتم استخدام كلمات المرور.
يتم تصدير ثنائيات WatchGuard المشفرة فقط ، لذلك مع الشكل والنص لن ينجح بشكل جيد. انتبه إلى مفتاح التشفير: الأحرف الكبيرة الإلزامية والحروف الصغيرة والأرقام ، على الأقل 8 أحرف. في حالة عدم الامتثال ، لا يتم تنفيذ الأمر ببساطة ، ولا يُشار إليه بالتحديد في مكان الخطأ.
لذلك ، لقد تم كل شيء. الآن نضع العميل على جهاز الكمبيوتر الخاص بنا العامل تحت نظام Windows. يمكنك ببساطة عرض الملفات والاختلاف من المستعرض ، ولكن تنزيل الإصدار من مراجعة محددة فقط من العميل. نضع TorToSiteSVN
من الموقع الرسمي .
على الخادم ، قم بإنشاء مستخدم لديه الحقوق اللازمة (قراءة) للفروع.
ثم تحتاج إلى إدخال العميل من خلال قائمة السياق إلى أي ملف والاتصال إلى مستودع. ليس من الضروري إنشاء نسخة من المستودع بنفسك إذا كنت لا تخطط لإجراء تغييرات على الملفات. حسنًا ، كن حذرًا من ذلك ، ستحتاج إلى العمل مع النسخة من خلال نظام التحكم في الإصدار ، وليس فقط مع جزء من نظام الملفات.


لجعل الاختلافات في ملفات tex غير القياسية ، تحتاج إلى التأكد من أن SVN لا تعتبر هذه الملفات ثنائية ، ولكنها نصية. مثل هذا:
svn propset svn:mime-type text/plain current_backup/*.bak
قم بتنفيذ هذا الأمر ، على سبيل المثال ، ضمن نظام التشغيل Linux ثم قم بالالتزام.
حسنًا ، إليك التغييرات ، انظر من خلال العيون. نرى أن قواعد جدار الحماية قد تغيرت:


إنه أكثر ملاءمة للمشاهدة في المتصفح.

في حالة حدوث شيء ما ، يمكن للمسؤول تنزيل النسخة الاحتياطية المطلوبة دون إيماءات غير ضرورية في التاريخ المطلوب.

رغم أنه عادة ما يكون الأحدث كافيًا.
بطريقة ما ، جاء اختراع الدراجة. لكنها تعمل على برنامج D-link DFL منذ عام تقريبًا ، تمامًا كما أحتاج ، وأحيانًا يساعد هذا كثيرًا.
آمل أن يأتي شخص في متناول اليدين.
المراجع:
حول زنخWatchGuard Firebox CLI manualالمؤكسد المؤيد