مضيف السيطرة الخفي. Daemon الذي يراقب المضيفين الآخرين مع طلبات Ping (ICMP) ويتحكم في بعضها مع حزم WOL (Wake on LAN).
الغرض الرئيسي هو التحكم في مضيفي Linux واحد/متعدد (EG SMB Server) بواسطة بعض مضيف Linux المركزي. هذا هو توفير الطاقة عن طريق إيقاف الخوادم غير المطلوبة تلقائيًا.
لم يراقب المضيف المركزي الذي يعمل فيه hostcontrold لمضيف التحكم (الخادم) فحسب ، بل يعمل أيضًا على عملاء هذا الخادم. إذا تم اكتشاف أحد مضيفات العميل المكونة بواسطة PING ، فإن وحدة التحكم المركزية تبدأ مضيف الخادم باستخدام حزمة Magic WOL. هذا يسمح لتشغيل الخوادم فقط إذا كان بعض العملاء قيد التشغيل. إذا قام جميع العملاء بإيقاف تشغيل الخادم أيضًا بعد فترة مهلة محددة.
جميع الميزات:
استنساخ المستودع على مضيف Linux Control Control.
تثبيت تبعيات بناء مع:
sudo apt install make cmake g++ pkg-config libtool
بناء وتثبيت:
cd hostcontrold && mkdir build && cd build
cmake ..
sudo make -j4 install
يقع ملف التكوين على /etc/hostcontrold.conf . إذا قمت بتشغيل الخفي بدون ملف تكوين تم إنشاؤه ، فسيتم إنشاء ملف افتراضي. يمكنك إضافة المزيد من كتل الخادم التعسفية والعملاء التعسفي لكل خادم.
يمكنك اختبار ما إذا كان هناك ردود مضيف على طلبات ICMP باستخدام Ping:
ping 192.168.0.6
مثال على الأوامر التي يمكن لمستخدم التطبيق استخدامها لإعداد مضيف خادم حيث يجب أن يستخدم clang لتسجيل الدخول عبر SSH:
ssh-keygen
ssh-copy-id [email protected]
يمكنك اختبار ما إذا كان كل شيء على ما يرام إذا كان الأمر التالي يعمل دون إدخال أي مستخدم:
دع SystemD معرفة الخفي الجديد ، وتمكين Autostart عند بدء تشغيل النظام وبدء تشغيل الخفي.
sudo systemctl daemon-reload
sudo systemctl enable hostcontrold
sudo systemctl start hostcontrold
استخدم sudo systemctl restart hostcontrold بعد تغيير التكوين.
لعرض سجل استخدام الخفي:
journalctl -e -u hostcontrold
بعد التثبيت والبدء ، سيتم تشغيل الخفي ومراقبة جميع المضيفين المكونة باستمرار. يمكنك رؤية حالة مضيف الخادم الذي يتم تصويره بواسطة ملف on / off في دليل التحكم الذي تم تكوينه. من خلال إنشاء ملفات بسيطة في الدليل ، يمكنك فرض بعض السلوك المحدد:
| اسم الملف | محتوى | ميزة |
|---|---|---|
force_on | فارغ | سيبقي الخادم يعمل على تشغيله |
force_off | فارغ | سيبقي الخادم مدعومًا |
راجع خطوات Installation في قسم Quick start guide للحصول على معلومات كيفية الإنشاء.
يتم تنظيم الكود نفسه كمشروع Cmake Pure مع رمز C ++ 14. IDE المفضل للعمل على الكود هو CLION.
يمكن أيضًا القيام بخطوات التطوير بأكملها في حاوية Docker المعدة. تُستخدم تلك بشكل أساسي لإنشاء واختبار الرمز باستخدام سير عمل GitHub Action على توزيعات/أدوات مختلفة ولكن يمكن استخدامها أيضًا للتطوير المحلي. يستخدم Ubuntu مع GCC افتراضيًا.
# Build the docker image.
./development/1_create.sh
# Create docker container and run it with the correct mounted volumes.
./development/2_run.sh
# Connect into the container.
./development/3_connect.sh
# Now you are logged-in the docker container.
cd /tmp/hostcontrold/
# Now you are in the source directory where you can compile and run tests e.g.
mkdir build
cd build
cmake ..
make -j4
# Leave the container with the following command when you are finished developing/testing.
exit
# Remove all signs of the docker container.
./development/5_remove.sh
لاختبارات الوحدة يتم استخدام إطار عمل googletest . يتم تثبيت هذا تلقائيًا في حاويات Docker. للتثبيت مباشرة على المضيف ، يمكن استخدام البرنامج النصي المقدم.
sudo development/install_gtest.sh
يتم إنشاء وحدة اختبار الوحدة الثنائية بواسطة CMake Target hostcontrold_test . لتشغيل الاختبار إما تنفيذ مباشرة جهاز hostcontrold/unittest/hostcontrold_test أو إنشاء test Cmake Target الذي يستخدم إطار عمل ctest .
sudo . السماح بتكوين هذا.معهد ماساتشوستس للتكنولوجيا
لا توجد أرقام أو إصدارات أو علامات أو فروع. يجب اعتبار السيد الإصدار المستقر الحالي. جميع الفروع الموجودة الأخرى هي فروع الميزات/التطوير وتعتبر غير مستقرة.
كريستيان لانج [email protected]