أتمتة إعداد WERC على OpenBSD.
تم اختبار كل من setup.sh و unsetup.sh scripts ، في أحدث إصدار متاح (v2.1) ، بنجاح على أحدث إصدار متاح OpenBSD مستقر (7.6). قد لا تعمل الإصدارات السابقة أو الأحدث من OpenBSD.
قد يؤدي إجراء ترقية إصدار OpenBSD (على سبيل المثال باستخدام sysupgrade (8)) إلى كسر تثبيت WERC الحالي. يُنصح باختبار تثبيت WERC دائمًا بعد إجراء ترقية النظام أو تحديث WERC أو تحديث Plan9port. إذا توقف عن العمل ، توجه إلى استكشاف الأخطاء وإصلاحها.
في الوقت الحالي ، تم اختبار التثبيت الناتج عن setup.sh فقط باستخدام طلبات GET ، والتي تدعمها بالتأكيد. قد تعمل أو لا تعمل أنواع أخرى من طلبات HTTP (على سبيل المثال ميزة "تسجيل الدخول إلى المستخدم"). قد تحتاج القواعد المستندة إلى عنوان URL في /etc/httpd.conf ( location ... ) إلى تكوين مختلف لدعم طلبات HTTP بخلاف GET .
الالتزام الموسومة باسم علامة النموذج vN.M (حيث N و M من الأعداد الصحيحة) ، هو التزام لها شجرة العمل لها الخصائص التالية:
setup.sh و unsetup.sh ، التي تم اختبارها مقابل أحدث إصدار من OpenBSD (متوفر في هذه المرحلة الزمنية) مع نتائج إيجابية ولا يوجد تأثير جانبي معروف على النظام.نظرًا لأن عملية الاختبار يدويًا ، فقد أتجاهل بعض حالات الحافة ، وأحيانًا عن قصد وأحيانًا لا. أنا أهتم بجودة برامجي ولكن اختبار كل سطر مقابل جميع حالاته الممكنة في الواقع يستغرق وقتًا طويلاً ولا يمكن استمراره.
(انتقل إلى RAT.MD.)
ملاحظة : للحفاظ على ملفات التكوين الأصلية التي سيتم تعديلها ، يقوم برنامج Setup البرنامج النصي بإعدادها عن طريق إضافة .bk إلى نهاية اسمها. على سبيل المثال ، يتم نسخ المحتوى الأصلي لـ /etc/httpd.conf إلى /etc/httpd.conf.bk . لاستعادة الملفات الأصلية ، يقوم البرنامج النصي بعدم الولادة بإعادة تسمية ملفات النسخ الاحتياطي باسمها الأصلي ، لاستبدال الإصدار الذي تم تغييره.
في القائمة التالية ، تشير $webdir و $p9pdir إلى دليل محتوى الويب الخاص بـ httpd ، بشكل افتراضي /var/www ، ودليل تثبيت Plan9Port مع $webdir كجذر ، افتراضيًا /plan9 .
/etc/httpd.conf.bk و /etc/fstab.bk بالفعل في نظام ملفات جهازك؟ إذا كان الأمر كذلك ، فمن المحتمل أن يقوم setup.sh بكتابهم فوقها ، فكر في إعادة تسمية أو إزالتها.$webdir والتي لا يمكن أن تضيع؟ يقوم برنامج SETUP Script بإنشاء ملفات جديدة في $webdir والتي قد تحدد الموجات الموجودة في الوقت الحالي ، بينما يزيل البرنامج النصي غير المتواصل بعض الدلائل التي قد تحذف تلك الملفات. النظر في نقل الملفات المهمة من $webdir .setup.sh مرة أخرى ، أو تشغيل unsetup.sh ، سوف يقوم بإصلاحه. (إذا كان الأمر كذلك ، فأنت محظوظ فقط.) اعتمادًا على الفشل (الأوامر) التي فشلت ونوع الخطأ ، فقد تتمكن من إصلاح التثبيت بنفسك يدويًا. ومع ذلك ، فإن هذا ليس هو الحال دائمًا وهو إجراء معرض للخطأ ، لذلك لا يُنصح على الإطلاق. يقوم الإجراء التالي بتنزيل البرامج النصية باستخدام أحدث علامة إصدار. يتم تحديث أحدث العلامة المعروضة في عنوان URL أدناه يدويًا ، يرجى التحقق من أنه يتطابق مع أحدث إصدار فعلي قبل المتابعة. لا ينصح (على الإطلاق) بتشغيل البرامج النصية من الفرع main .
يشير الإجراء التالي إلى البرنامج النصي الإعداد ( setup.sh ). بالنسبة إلى البرنامج النصي UN-SETUP ( unsetup.sh ) ، يكون الإجراء هو نفسه باستثناء اسم البرنامج النصي.
الإجراء هو كما يلي ، وكتب على حد سواء في الخطوات القابلة للقراءة البشرية وكأوامر:
domain (و webdir ، إذا لزم الأمر) في الإرادة.ftp https://raw.githubusercontent.com/EdoardoLaGreca/werc-on-openbsd/v2.1/setup.sh
sha256 -q setup.sh
vi setup.sh # change domain and webdir
chmod 744 setup.sh
doas ./setup.sh لا يقوم برنامج SETUP Script تلقائيًا ببدء httpd و slowcgi . يتصرف هكذا لسببين: أولاً ، قد ترغب في إجراء بعض التغييرات النهائية على موقع الويب الخاص بك قبل عرضه علنًا ؛ ثانياً ، إذا تم تغيير /etc/fstab بواسطة البرنامج النصي ، فأنت بحاجة إلى إعادة تشغيل نظامك قبل بدء خادم الويب. يجب أن يعرض البرنامج النصي رسالة سجل إذا كنت بحاجة إلى إعادة التشغيل (و/أو /etc/fstab قد تم تغييرها). عدم وجود هذه الرسالة في السجل يعني أن إعادة التشغيل ليست ضرورية. كل هذا لا ينطبق على unsetup.sh .
بدلاً من تشغيل البرنامج النصي بأكمله ، قد يرغب المرء في تشغيل جزء أو بعض الأجزاء فقط ، على سبيل المثال ، تصحيح البرنامج النصي أو تشغيل جزء لا يمكن أن ينتهي بنجاح. للقيام بذلك أمر بسيط مثل تمرير أسماء الأجزاء إلى البرنامج النصي مثل الوسائط. يظهر مثال أدناه.
./setup.sh preinst inst على الرغم من أن السطر أعلاه يستخدم setup.sh ، unsetup.sh يتصرف أيضًا بهذه الطريقة.
من الممارسات الجيدة الحفاظ على تحديث البرامج ، كلاهما لتلقي ميزات جديدة وتصحيح نقاط الضعف الحالية.
عند استخدام WERC ، يجب الحفاظ على 4 قطع من البرامج:
httpd و slowcgi ) ما لم تكن تستخدم فرع OpenBSD -current ، يتم تحديث httpd و slowcgi عادة على كل ترقية النظام. فهي آمنة إلى حد ما وأحد الحد الأدنى ، لذا فإن إبقائها محدثة ليست ضرورية. هذه البرامج هي جزء من شجرة مصدر OpenBSD التي تحتوي على نظام التشغيل بأكمله ، بما في ذلك kernel ، والمكتبات الأساسية ، وجميع الأدوات المساعدة التي تم تثبيتها مسبقًا. جميع البرامج في شجرة المصدر هذه تخضع لعمليات تدقيق أمان شديدة ، ولهذا السبب تكون آمنة للغاية.
من ناحية أخرى ، من المهم الحفاظ على تحديث WERC و Clan9port. للقيام بذلك ، قم بتشغيل الخطوط التالية في القشرة. يقومون بإزالة عمليات تثبيت WERC و Plan9Port الحالية ، وتنزيل نسختهم المحدثة ، وتثبيتها مرة أخرى.
doas ./unsetup.sh uninst rm9env
doas ./setup.sh inst mk9envما لم تكن ترغب في المساهمة في التطوير ، تخطي هذا القسم.
يقوم البرنامج النصي اختبار ، وهو test.sh ، بأتمتة اختبار الإعداد والبرامج النصية غير المستقرة. يحتوي البرنامج النصي على ثلاث وظائف رئيسية:
init ، الذي يؤدي جميع المهام الأوليةsetup ، الذي يقوم بتشغيل البرنامج النصي الإعداد ويجمع معلومات حول التغييرات في نظام الملفاتunsetup ، وهو نفس setup ولكن مع البرنامج النصي غير المتوحشيتشابه سلوك البرنامج النصي للاختبار مع البرامج النصية للإعداد والبرامج النصية: يمكن استدعاء الوظائف من خلال تحديدها كوسائط سطر الأوامر. ومع ذلك ، هناك اختلاف واحد ، وهو أن تشغيل البرنامج النصي بدون وسيط لا يختلف عن عدم تشغيل البرنامج النصي على الإطلاق. هذا السلوك هو خيار ، من الناحية النظرية ، يجب أن يقلل من الاختبار المهمل.
قد يحدث أنه بعد ترقية OpenBSD ، يتوقف موقع الويب الخاص بك عن العمل ويظهر فقط "500 خطأ خادم داخلي".
على الرغم من أن السبب الدقيق وراء هذا السلوك يجب أن يتم تحليله وفهمه بعناية ، فقد تحاول إلغاء تثبيت WERC و Plan9Port. الإجراء هو نفسه كما لو كنت تحديثها.
doas ./unsetup.sh uninst rm9env
doas ./setup.sh inst mk9envيتم حساب هذه الاختبارات على شجرة العمل من أحدث إصدار.
setup.sh:
7a08ee3a8e824f9a54b9a471ef0ebc6fb7ee2a848f13a33264b42a3e9d8817da
unsetup.sh:
18f74da2537dc4dcc97c3fc6d4439faf6340f068309d9110a5dc098b899c3e50
بدءًا من v2.0 ، أصبح المشروع مرخصًا الآن بموجب ترخيص ISC ، بدلاً من Creative Commons Zero. معظم الأشياء لا تتغير ، باستثناء منح المستخدمين والمساهمين المزيد من الحقوق.