Exécution sur une machine distante

De SOS Paris
Aller à : navigation, rechercher

Cet article explique comment mettre en place un agent distant sur lequel on pourra soumettre des traitements.
Dans ce type de configuration, l’ordonnanceur reçoit la commande, l’exécute et renvoie le statut.


On part du principe que vous avez déjà installé 2 job schedulers, sur 2 machines ou sur la même machine,
dans ce deuxième cas il peut s’agir d’un Jobscheduler qui tourne avec un compte de soumission particulier ou qui est délégué à un groupe de personnes.

Le serveur et l’agent peuvent être sur n’importe quel type d’OS, vous pouvez donc décider de dédier une machine Windows pour faire tourner vos traitements Unix ou, plus généralement, l’inverse.

Sur l’agent distant

Pour qu’un moteur puisse se servir d’une autre instance comme agent, il est nécessaire que ce dernier lui accorde la permission de se connecter.
Pour cela, on va vérifier la configuration allowed_host du fichier :

${SCHEDULER_DATA}/config/scheduler.xml
~/jobscheduler/scheduler_wiki/config$ cat scheduler.xml | grep allowed_host
                                    <allowed_host host = "localhost" level = "all"/>

ici, seul les moteurs présents sur localhost seront acceptés, pour remédier à cela nous allons ajouter l'hôte sur lequel nous avons installé le moteur.

~/jobscheduler/scheduler_wiki/config$ cat scheduler.xml | grep allowed_host
                                    <allowed_host host = "localhost" level = "all"/>
                                    <allowed_host host = "10.0.0.0" level = "all"/>

Ce changement dans la configuration permet à tous les moteurs présents sur la plage 10.x.x.x de communiquer avec notre agent.

Un arrêt/relance de l’agent permet de prendre en compte les nouveaux paramètres de sécurité.

Il est maintenant prêt à recevoir le traitement.

Sur le serveur

Pour soumettre le traitement à distance, on va déclarer un "process class" qui permettra de définir la manière de contacter la machine distante (nom et port) et éventuellement le nombre de traitements concurrents sur la machine.

Dist.png

Grâce au JOE du serveur, on va pouvoir définir cette nouvelle machine par le menu HotFolder/ProcessClass.


On donne le nom du Process Class, c’est à dire le nom donné à cet agent distant, on peut donner le nom de la machine mais il est préférable de fournir un alias.

Avantages de l’alias: les traitements n’utiliseront que le nom logique, en cas de changement de machine physique, le changement se limitera à donner la nouvelle adresse IP sur le process class.


On donne ensuite le nombre de traitements concurrents ce qui permet de limiter la consommation de ressources sur la machine distante.


A noter: on peut créer plusieurs Process Classes pour une même machine, on peut par exemple créer un alias par application, ce qui permet de répartir les applications sur différentes machines, mutualisées ou non, pour faciliter votre gestion de capacité.


On va ensuite donner le nom ou l’adresse IP de la machine distante ainsi que son port (par défaut 4444).

On sauve ensuite la définition dans le répertoire Live.


Vérification

Dist2.png

L’onglet "Process Classes" de l’interface d’exploitation permet de voir l’ensemble des machines définies ainsi que les traitements en cours sur chacune des machines.

Un clic sur le lien de la machine permet d’accéder à l’interface d’exploitation de la machine distante
(dans la mesure où votre adresse IP est autorisée, dans le cas contraire il faudra ajouter votre IP comme vous l’avez fait avec le serveur dans la première partie).


De plus, l’onglet job permet de filtrer les traitements par machines, ce qui permet de lister l’état des traitements pour une machine donnée.

Nouveau traitement

Dist3.png

On va créer un traitement qui va nous donner l’environnement de la machine (commande set pour windows et env pour Unix).

Toujours avec JOE, on va créer un nouveau traitement HotFolder/Job/New Standalone Job

On indique le process class qu’on vient de créer : mon_agent
et la commande env (car l'exemple est sur Linux).

Il ne reste plus qu’à aller dans l'interface web et à lancer le traitement.

Pour aller plus loin :

Exécution avec un compte de tiers (impersonation)