Daemon de control del host. Daemon que monitorea a otros hosts con solicitudes de ping (ICMP) y controla algunos de ellos con paquetes Wol (Wake On LAN).
El objetivo principal es controlar uno/múltiples hosts de Linux (por ejemplo, servidor SMB) por algún host de Linux Central. Esto es para ahorrar energía al cerrar los servidores no necesarios automáticamente.
El host central donde hostcontrold se ejecuta monitorea no solo el host para controlar (servidor) sino también los clientes de este servidor. Si uno de los hosts de cliente configurados es detectado por un ping, el controlador central inicia el host del servidor utilizando un paquete Magic Wol. Esto solo permite ejecutar servidores si algunos clientes están en funcionamiento. Si todos los clientes apagan, el servidor también cerrará después de un período de tiempo de espera especificado.
Todas las características:
Clone el repositorio en su host de Linux de control central.
Instale dependencias de compilación con:
sudo apt install make cmake g++ pkg-config libtool
Construir e instalar:
cd hostcontrold && mkdir build && cd build
cmake ..
sudo make -j4 install
El archivo de configuración se encuentra en /etc/hostcontrold.conf . Si inicia el demonio sin un archivo de configuración creado, se generará un predeterminado. Puede agregar más bloques de servidor arbitrarios y clientes arbitrarios por servidor.
Puede probar si un host responde a las solicitudes ICMP usando ping:
ping 192.168.0.6
Un ejemplo de comandos que el usuario de la aplicación podría usar para preparar un host del servidor donde el clang del usuario debe usarse para iniciar sesión a través de SSH:
ssh-keygen
ssh-copy-id [email protected]
Puede probar si todo está bien si el siguiente comando funciona sin ninguna entrada del usuario:
Deje que Systemd conozca el nuevo demonio, habilite AutoStart en el inicio del sistema e inicie el demonio.
sudo systemctl daemon-reload
sudo systemctl enable hostcontrold
sudo systemctl start hostcontrold
Use sudo systemctl restart hostcontrold después de cambiar la configuración.
Para ver el registro del uso del demonio:
journalctl -e -u hostcontrold
Después de la instalación y el inicio, el demonio ejecutará y monitoreará todos los hosts configurados constantemente. Puede ver el estado de un host del servidor visualizado por el archivo de on / off en el directorio de control configurado. Al crear archivos simples en el directorio, puede forzar algún comportamiento específico:
| Nombre del archivo | contenido | característica |
|---|---|---|
force_on | vacío | mantendrá el servidor encendido |
force_off | vacío | mantendrá el servidor apagado |
Consulte los pasos Installation en la sección Quick start guide para obtener información sobre cómo construir.
El código en sí está organizado como el proyecto CMake puro con código C ++ 14. El IDE preferido para trabajar en el código es Clion.
Todos los pasos de desarrollo también se pueden hacer en el contenedor de Docker preparado. Esos se utilizan principalmente para construir y probar el código con el flujo de trabajo de acción GitHub en diferentes distribuciones/cadenas de herramientas, pero también se puede utilizar para el desarrollo local. Ubuntu con GCC se usa de forma predeterminada.
# 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
Para las pruebas unitarias se utiliza el marco googletest . Esto se instala automáticamente en los contenedores Docker. Para instalar directamente en el host se puede usar el script proporcionado.
sudo development/install_gtest.sh
El binario de prueba unitario es creado por el objetivo CMAKE hostcontrold_test . Para ejecutar la prueba, ejecute directamente el binario hostcontrold/unittest/hostcontrold_test o cree la test de destino CMake que usa el marco ctest .
sudo . Dejar configurar esto.MIT
No existe números de versión, lanzamientos, etiquetas o ramas. El maestro debe considerarse la liberación estable actual. Todas las demás ramas existentes son ramas de características/desarrollo y se consideran inestables.
Christian Lang [email protected]