Omnishell est une fonctionnalité de Pandora FMS Enterprise utilisée pour l'orchestration/automatisation informatique. Il s'agit d'un outil, totalement natif et intégré dans la console et les agents PFMS, qui permet de définir des commandes ou des blocs de commandes et de sélectionner les cibles où les exécuter.
Omnishell s'appuie sur la communication entre les différents composants de Pandora FMS via Tentacle, pour coordonner en toute sécurité les exécutions et les réponses des commandes que vous souhaitez programmer.
Vous devez avoir installé dans la console Pandora FMS la dépendance php-yaml et dans les agents logiciels GNU/Linux la dépendance perl-YAML-Tiny.
Uniquement pour le NG 742 ou les versions antérieures.
.rcmd
./etc/tentacle/tentacle_server.conf
:# Filters (regexp:dir,regexp:dir...) filters .*\.conf:conf;.*\.md5:md5;.*\.zip:collections;.*\.lock:trans;.*\.rcmd:commands
tentacle_server.conf.new
qui est distribué lorsque le serveur pandora_server est installé..rcmd
seront publiés dans le nouveau dossier:/var/spool/pandora/data_in/commands
chown pandora:apache -R /var/spool/pandora/data_in/commands chmod g+s /var/spool/pandora/data_in/commands
Une tâche Omnishell est définie par trois éléments :
Précondition
Par une ou plusieurs commandes avec chaque exécution séquentielle qui doit être réussie pour toutes (résultat errorlevel 0
).
Commandes
À exécuter dans l'agent logiciel cible, dans une liste séquentielle.
Postcondition
Par une ou plusieurs commandes avec chaque exécution séquentielle qui doit être réussie pour toutes (résultat errorlevel 0
).
Si l'une des commandes définies dans Précondition, Commandes ou Postcondition passe en mode interactif, bloquant le flux d'exécution, la tâche sera interrompue. L'agent logiciel lui-même détruira le processus après le délai d'attente configuré pour la tâche.
Vous voulez configurer le démarrage automatique du service HTTPD sur les systèmes CentOS 7 en bloc.
[ `rpm -qa | grep -i httpd | wc -l` -lt 1 ] || yum install -y httpd
Cette ligne par le biais de la commande rpm liste le logiciel installé et compte les apparitions du mot clé httpd. Si c'est zéro, elle l'instllera.
systemctl restart httpd systemctl enable httpd.service
La première ligne va démarrer le service sur la machine distante. L'étape suivante consiste à configurer le système pour qu'il démarre à chaque redémarrage du serveur distant.
[ `netstat -lptn | grep 80 | grep LISTEN | wc -l` -gt 0 ]
Une fois que vous ayez compris clairement ce que vous voulez que les agents fassent, créez la commande dans Omnishell :
Après la création de la commande, assignez les agents dont vous avez besoin.
La progression de l'exécution de la commande dans les agents sélectionnés est similaire à la suivante :
En accédant à la vue, vous verrez le temps estimé en attente pour l'exécution de la commande :
Lorsque vous appliquez l'exécution de la commande en bloc, la vue sera la suivante dans l'exemple :
Cliquez sur sa case pour obtenir un modal avec des informations supplémentaires :
Pour cet environnement, Omnishell est encore en période de test. Certaines de ses fonctionnalités sont donc susceptibles d'être modifiées ou ne sont pas disponibles. Ce n'est que temporaire et nous nous en excusons.
En ce qui concerne le processus de configuration dans la console Pandora FMS, vous devez répéter exactement les mêmes étapes que celles de l'exemple précédent sous GNU/Linux, seul le code à exécuter change.
Pour la simplicité de cet exemple, seules la phase de précondition et la tâche principale sont utilisées, respectivement:
powershell.exe -command "Start-Sleep -Seconds 1"
powershell.exe -command "$mode = Get-Executionpolicy ; if ( $mode -like "restricted" ) {Write-Error -Message "0"}"
PowerShell est un nouveau shell Windows qui a été conçu expressément pour les administrateurs système. Il comprend une invite de commande interactive et un environnement de scripting qui peuvent être utilisés indépendamment ou ensemble. Il est installé avec ce système d'exploitation, mais vous pouvez installer PowerShell Core à partir de son dépôt sur GitHub pour obtenir la dernière version mise à jour. Vous pouvez obtenir des informations intéressantes sur PowerShell sur le blog de Pandora FMS.
La condition préalable vérifie que PowerShell est installé et peut être utilisé, sinon elle renvoie une erreur et l'étape suivante ne peut être exécutée.
Dans la tâche principale, il est question de la possibilité d'exécuter des scripts écrits en PowerShell. S'il fonctionne sans erreur, vous pouvez ajouter du code dans la phase de test pour en utiliser un pour effectuer des tâches plus longues et plus complexes. Pour plus d'informations, consultez la documentation sur l'exécution de scripts dans un module ou sur l'utilisation d'un modèle pour créer un module à l'aide de PowerShell.
Pendant l'installation de l'agent logiciel, vous devez cocher l'option Enable remote config. Si vous avez déjà installé cet agent, vous devrez modifier le fichier %PROGRAMFILES%\pandora_agent\pandora_agent.conf
avec des droits d'administrateur et ajoutez (ou modifiez) la ligne suivante : remote_config 1
. Dans le groupe de programmes Pandora FMS du menu de démarrage, il y a un accès direct au script %PROGRAMFILES%\pandora_agent\scripts\edit_config_file.bat
pour plus de rapidité et de facilité.
error_level !=0
), elle arrêtera l'évaluation et la commande échouera.retry
et timeout
pour le nombre de tentatives et le temps d'exécution maximal, respectivement.