Démon de contrôle de l'hôte. Daemon qui surveille les autres hôtes avec des demandes de ping (ICMP) et en contrôle certains avec des paquets WOL (Wake on LAN).
Le but principal est de contrôler un / plusieurs hôtes Linux (par exemple SMB Server) par un hôte Linux central. Il s'agit d'économiser de l'énergie en fermant automatiquement les serveurs non nécessaires.
L'hôte central où hostcontrold est en cours d'exécution ne surveille pas seulement l'hôte à contrôler (serveur), mais aussi les clients de ce serveur. Si l'un des hôtes clients configurés est détecté par un ping, le contrôleur central démarre l'hôte du serveur en utilisant un paquet Magic WOL. Cela ne permet d'exécuter des serveurs que si certains clients sont opérationnels. Si tous les clients s'arrêtent, le serveur s'arrête également après une période de délai d'expiration spécifiée.
Toutes les fonctionnalités:
Clone le référentiel sur votre hôte Central Control Linux.
Installez les dépendances de construction avec:
sudo apt install make cmake g++ pkg-config libtool
Construire et installer:
cd hostcontrold && mkdir build && cd build
cmake ..
sudo make -j4 install
Le fichier de configuration est situé sur /etc/hostcontrold.conf . Si vous démarrez le démon sans fichier de configuration créé, un par défaut sera généré. Vous pouvez ajouter arbitraire plus de blocs de serveur et de clients arbitraires par serveur.
Vous pouvez tester si un hôte répond aux demandes ICMP en utilisant Ping:
ping 192.168.0.6
Un exemple de commandes que l'utilisateur de l'application pourrait utiliser pour préparer un hôte de serveur où l'utilisateur clang devrait être utilisé pour se connecter via SSH:
ssh-keygen
ssh-copy-id [email protected]
Vous pouvez tester si tout va bien si la commande suivante fonctionne sans aucune entrée utilisateur:
Faites connaître le nouveau démon, activez Autostart au démarrage du système et démarrez le démon.
sudo systemctl daemon-reload
sudo systemctl enable hostcontrold
sudo systemctl start hostcontrold
Utilisez sudo systemctl restart hostcontrold après avoir modifié la configuration.
Pour afficher le journal de l'utilisation du démon:
journalctl -e -u hostcontrold
Après l'installation et le démarrage, le démon s'exécutera et surveillera constamment tous les hôtes configurés. Vous pouvez voir l'état d'un hôte de serveur visualisé par le fichier on / off dans le répertoire de contrôle configuré. En créant des fichiers simples dans le répertoire, vous pouvez forcer un comportement spécifique:
| nom de fichier | contenu | fonctionnalité |
|---|---|---|
force_on | vide | gardera le serveur mis sur |
force_off | vide | gardera le serveur alimenté |
Consultez les étapes Installation dans la section Quick start guide pour plus d'informations sur la construction.
Le code lui-même est organisé comme un projet CMake pur avec le code C ++ 14. L'IDE préférée au travail sur le code est Clion.
Les étapes de développement entières peuvent également être effectuées dans le conteneur Docker préparé. Ceux-ci sont principalement utilisés pour construire et tester le code avec le flux de travail GitHub Action sur différentes distributions / chaînes d'outils, mais peuvent également être utilisés pour le développement local. Ubuntu avec GCC est utilisé par défaut.
# 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
Pour les tests unitaires, le framework googletest est utilisé. Ceci est automatiquement installé dans les conteneurs Docker. Pour installer directement sur l'hôte, le script fourni peut être utilisé.
sudo development/install_gtest.sh
Le binaire de test unitaire est créé par le Cmake Target hostcontrold_test . Pour exécuter le test, exécutez directement le binaire hostcontrold/unittest/hostcontrold_test ou créez le test cible CMake qui utilise le framework ctest .
sudo . Permettez de configurer cela.Mit
Il n'existe pas de numéros de version, de versions, de balises ou de branches. Le maître doit être considéré comme la version stable actuelle. Toutes les autres branches existantes sont des branches de caractéristiques / de développement et sont considérées comme instables.
Christian lang [email protected]