Ce chapitre présente SunPlexTM Agent Builder et le module Cluster Agent pour Agent Builder, deux outils d'automatisation de la création des types de ressources ou des services de données à exécuter sous le gestionnaire RGM (Resource Group Manager). Un type de ressources est principalement un wrapper qui enveloppe une application pour lui permettre de s'exécuter dans un environnement clusterisé sous le contrôle du gestionnaire RGM.
Agent Builder intègre une interface constituée d'écrans permettant la saisie de données uniques sur votre application et le type de ressources que vous souhaitez créer. En fonction des données entrées, Agent Builder génère les logiciels suivants :
Un ensemble de fichiers sources (C, korn shell (ksh) ou un service de données générique (GDS)) dédié à un type de ressources de basculement ou évolutives, correspondant aux méthodes de rappel du type de ressources.
Un fichier RTR (Resource Type Registration) personnalisé si vous générez une source en C ou korn shell.
Des scripts d'utilitaire personnalisés pour le démarrage, l'arrêt et la suppression d'une instance (ressource) d'un type de ressources, ainsi que des pages man personnalisées fournissant de plus amples informations sur l'utilisation de chacun de ces fichiers.
Un package Solaris comprenant les codes binaires (si vous générez une source C), un fichier RTR (si vous générez une source en C ou korn shell) et les scripts d'utilitaire.
Voici les rubriques traitées dans ce chapitre :
Cette rubrique présente la procédure d'utilisation d'Agent Builder ainsi que les tâches que vous devez effectuer avant de pouvoir l'utiliser. Vous y découvrirez également comment déployer Agent Builder après avoir généré le code de votre type de ressources.
Avant d'utiliser Agent Builder, vous devez déterminer si votre application répond aux critères requis pour devenir hautement disponible ou évolutive. Agent Builder ne peut pas réaliser cette analyse s'appuyant uniquement sur les caractéristiques du temps d'exécution de l'application. Vous trouverez de plus amples informations à ce sujet dans la rubrique Analyse du caractère approprié de l'application.
Il est possible qu'Agent Builder ne puisse pas toujours créer un type de ressources complet pour votre application. Dans la plupart des cas, cependant, il propose au moins une solution partielle. Par exemple, les applications particulièrement complexes peuvent nécessiter un code supplémentaire qu'Agent Builder ne génère pas par défaut. Il peut notamment s'agir d'un code permettant d'ajouter des contrôles de validation pour des propriétés supplémentaires ou de régler des paramètres qu'Agent Builder n'affiche pas. Le cas échéant, vous devez apporter des modifications au code source généré ou au fichier RTR. La conception d'Agent Builder vise justement à offrir cette souplesse.
De fait, Agent Builder insère des commentaires aux endroits du code source généré où vous pouvez ajouter votre propre code de type de ressources. Une fois le code source modifié, vous pouvez utiliser le fichier makefile généré par Agent Builder pour recompiler le code source et générer de nouveau le package de type de ressources.
Même si vous utilisez exclusivement le code de type de ressources que vous avez créé sans insérer de code généré par Agent Builder, vous pouvez déployer le fichier makefile et la structure fournis par Agent Builder pour créer le package Solaris de votre type de ressources.
Agent Builder ne requiert aucune installation spéciale. Agent Builder est intégré au package SUNWscdev qui est installé par défaut lors de l'installation standard du logiciel Sun Cluster (reportez-vous au document Guide d'installation du logiciel Sun Cluster 3.1 10/03 pour obtenir de plus amples informations). Avant d'utiliser Agent Builder, vérifiez les points suivants :
Java doit figurer dans la variable $PATH. Agent Builder dépend de Java (Java Development Kit version 1.3.1 ou version supérieure) et si Java ne figure pas dans la variable $PATH, scdsbuilder renvoie un message d'erreur.
Vous avez installé le groupe de logiciels « Developer System Support » de Solaris 8 ou version supérieure.
Le compilateur cc est fourni avec la variable $PATH. Agent Builder utilise la première occurrence de cc dans la variable $PATH pour identifier le compilateur dont il doit se servir pour générer un code binaire C pour le type de ressources. Si cc n'est pas intégré à la variable $PATH, Agent Builder désactive l'option de génération de code C (reportez-vous à la rubrique Utilisation de l'écran Créer.
vous pouvez utiliser un autre compilateur que le compilateur cc standard avec Agent Builder. Pour ce faire, vous pouvez par exemple créer un lien symbolique du compilateur cc vers un autre compilateur dans la variable $PATH, tel gcc. Vous pouvez également remplacer la spécification du compilateur dans le fichier makefile (actuellement CC=cc) par le chemin d'accès complet d'un autre compilateur. Par exemple, dans le fichier makefile généré par Agent Builder, remplacez CC=cc par CC=pathname/gcc . Le cas échéant, vous ne pouvez pas exécuter Agent Builder directement. Vous devez utiliser les commandes make et make pkg pour générer un code de service de données et un package.
Lancez Agent Builder à l'aide de la commande suivante :
% /usr/cluster/bin/scdsbuilder |
L'écran initial de Sun Builder (comme indiqué dans l'illustration suivante) apparaît.
vous pouvez accéder à Agent Builder par le biais de l'interface de ligne de commande (reportez-vous à la rubrique Utilisation de la version ligne de commande d'Agent Builder) si l'interface utilisateur graphique n'est pas accessible.
Agent Builder comprend deux écrans vous guidant tout au long du processus de création d'un nouveau type de ressources :
Créer : cet écran contient des informations élémentaires sur le type de ressources à créer, comme son nom et le répertoire de travail (c'est-à-dire le répertoire dans lequel vous créez et configurez le modèle de type de ressources) des fichiers générés. Vous pouvez également identifier le type de ressources à créer (évolutives ou de basculement), si l'application de base est compatible réseau (c'est-à-dire si elle passe par le réseau pour communiquer avec ses clients) et le type de code (C, ksh ou GDS (service de données générique)) à générer. Pour de plus amples informations sur le code GDS (service de données générique), reportez-vous au Chapitre 10. Vous devez renseigner les champs de cet écran, puis sélectionner Créer pour générer la sortie correspondante, avant d'afficher l'écran Configurer.
Configurer : vous devez indiquer dans cet écran une commande permettant de démarrer l'application. Vous pouvez, de façon facultative, fournir des commandes pour interrompre et sonder l'application. Si vous n'entrez pas ces commandes, la sortie générée utilise des signaux pour arrêter l'application et fournit un mécanisme de détection par défaut (reportez-vous à la description de la commande correspondante dans la rubrique Utilisation de l'écran Configurer). Cet écran vous permet également de modifier les valeurs de délai pour chacune de ces trois commandes.
si vous lancez Agent Builder à partir du répertoire de travail d'un type de ressources existant, Agent Builder initialise les écrans Créer et Configurer en reprenant les valeurs du type de ressources existant.
Reportez-vous à la rubrique Navigation dans Agent Builder si vous avez des questions sur l'utilisation des boutons ou des commandes de menu de l'un ou l'autre des écrans d'Agent Builder.
La première étape de création d'un type de ressources consiste à renseigner l'écran Créer qui s'affiche au lancement d'Agent Builder. L'illustration suivante présente l'écran Créer une fois que vous avez renseigné les champs.
L'écran Créer contient les champs, les cases d'option et les cases à cocher suivantes :
Nom du fournisseur : nom permettant d'identifier le fournisseur du type de ressources. Si vous indiquez en règle générale le symbole de référencement du fournisseur, sachez toutefois que n'importe quel nom unique d'identification du fournisseur est valide. N'utilisez que des caractères alphanumériques.
Nom d'application : nom du type de ressources. N'utilisez que des caractères alphanumériques.
le nom du fournisseur et le nom d'application constituent le nom complet du type de ressources. Ce nom complet ne doit pas excéder neuf caractères.
Répertoire de travail : répertoire dans lequel Agent Builder crée une structure de répertoire pour contenir tous les fichiers créés pour le type de ressources cible. Quel que soit le répertoire de travail, vous ne pouvez y créer qu'un seul type de ressources. Agent Builder initialise ce champ sur le chemin d'accès au répertoire de lancement d'Agent Builder. Vous pouvez cependant entrer un nom différent ou localiser un autre répertoire à l'aide du bouton Parcourir.
Agent Builder crée un sous-répertoire contenant le nom du type de ressources dans le répertoire de travail. Par exemple, si le nom du fournisseur et le nom d'application sont respectivement SUNW et ftp, Agent Builder appelle ce sous-répertoire SUNWftp.
Agent Builder insère tous les répertoires et fichiers du type de ressources cible dans ce répertoire (reportez-vous à la rubrique Structure de répertoire).
Évolutif ou Basculement : indique si le type de ressources cible est évolutif ou de basculement.
Compatible réseau : indique si l'application de base est compatible réseau ; c'est-à-dire si elle passe par le réseau pour communiquer avec ses clients. Cochez cette case pour indiquer que l'application est compatible réseau et ne la cochez pas pour indiquer qu'elle n'est pas prévue pour être utilisée en réseau. Le code korn shell nécessite que l'application soit compatible réseau. Par conséquent, Agent Builder sélectionne cette case et la grise si vous cochez le bouton ksh ou GDS.
C, ksh : indique le langage du code source généré. Bien que ces options soient mutuellement exclusives, Agent Builder vous permet de créer un type de ressources avec un code généré ksh, puis de réutiliser les mêmes données pour créer un code généré C (reportez-vous à la rubrique Clonage d'un type de ressources existant).
GDS : indique que ce service est un service de données générique. Reportez-vous au Chapitre 10 pour de plus amples informations sur la création et la configuration d'un service de données générique.
si le compilateur cc ne figure pas dans la variable $PATH, Agent Builder grise la case d'option C et sélectionne le bouton ksh. Pour spécifier un compilateur différent, reportez-vous à la remarque figurant à la fin de la rubrique Installation et configuration d'Agent Builder.
Une fois les données requises entrées, cliquez sur le bouton Créer. Le Journal en bas de l'écran présente les actions qu'Agent Builder entreprend. La commande Enregistrer journal du menu Éditer vous permet d'enregistrer les données dans le journal.
Une fois cette opération terminée, Agent Builder affiche soit un message indiquant que cette étape a été réalisée avec succès soit un message d'avertissement précisant qu'il est impossible d'achever correctement cette tâche. Dans ce cas, vous devez consulter le journal pour obtenir plus d'informations.
Si Agent Builder termine cette tâche avec succès, vous pouvez cliquer sur le bouton Suivant pour afficher l'écran Configurer depuis lequel vous pouvez terminer de générer le type de ressources.
bien que la génération d'un type de ressources complet s'exécute suivant une procédure en deux étapes, vous pouvez quitter Agent Builder une fois la première étape (création) terminée sans perdre les données que vous avez entrées ou le travail qu'Agent Builder a achevé (reportez-vous à la rubrique Réutilisation d'un travail terminé).
L'écran Configurer, illustré ci-après, apparaît une fois qu'Agent Builder a terminé de créer le type de ressources et que vous avez cliqué sur le bouton Suivant de l'écran Créer. Vous ne pouvez pas accéder à l'écran Configurer avant d'avoir créé le type de ressources.
L'écran Configurer contient les champs suivants :
Commande de démarrage : ligne de commande complète pouvant être transférée à n'importe quel shell UNIX pour lancer l'application de base. Nous vous recommandons de spécifier cette commande. Vous pouvez entrer cette commande dans le champ correspondant ou localiser le fichier contenant la commande de démarrage de l'application à l'aide du bouton Parcourir.
La ligne de commande complète doit contenir toutes les informations requises pour démarrer l'application (noms d'hôte, numéros de port, chemin d'accès aux fichiers de configuration, etc.). Si votre application nécessite d'indiquer un nom d'hôte sur la ligne de commande, utilisez la variable $hostnames définie par Agent Builder (reportez-vous à la rubrique Utilisation de la variable $hostnames d'Agent Builder).
N'utilisez pas de guillemets (““) avec la commande.
si l'application de base comprend plusieurs arborescences de processus indépendantes et que chaque processus est exécuté à partir de sa propre balise sous la fonction PMF, vous ne pouvez pas indiquer une seule commande. Vous devez plus exactement créer un fichier texte contenant les commandes individuelles de démarrage de chaque arborescence de processus et indiquer le chemin d'accès à ce fichier dans le champ Commande de démarrage. Reportez-vous à la rubrique Création de types de ressources contenant plusieurs arborescences de processus indépendantes. Vous y découvrirez quelques-unes des caractéristiques spécifiques que requiert ce fichier pour fonctionner correctement.
Commande d'arrêt : ligne de commande complète pouvant être transférée à n'importe quel shell UNIX pour arrêter l'application de base. Vous pouvez entrer cette commande dans le champ correspondant ou localiser le fichier contenant la commande d'arrêt de l'application à l'aide du bouton Parcourir. Si votre application nécessite d'indiquer un nom d'hôte sur la ligne de commande, utilisez la variable $hostnames définie par Agent Builder (reportez-vous à la rubrique Utilisation de la variable $hostnames d'Agent Builder).
Cette commande est optionnelle. Si vous n'indiquez pas de commande d'arrêt, le code généré utilise les signaux (de la méthode d'Arrêt) pour arrêter l'application, comme suit :
La méthode d'Arrêt envoie le signal SIGTERM pour arrêter l'application et laisse s'écouler 80% du délai d'attente pour que l'application se ferme.
Si le signal SIGTERM échoue, la méthode d'Arrêt envoie le signal SIGKILL pour arrêter l'application et laisse s'écouler 15% du délai d'attente pour que l'application se ferme.
Si le signal SIGKILL échoue, la méthode d'Arrêt ne ferme pas l'application correctement (les 5% restants du délai d'attente sont considérés comme du temps supplémentaire).
veillez à ce que la commande d'arrêt ne soit pas renvoyée avant l'arrêt complet de l'application.
Commande de détection : commande que vous pouvez exécuter périodiquement pour vérifier la maintenance de l'application et obtenir un état de sortie compris entre 0 (succès) et 100 (échec total). Cette commande est facultative. Vous pouvez entrer le chemin d'accès complet à cette commande ou localiser le fichier contenant la commande de détection de l'application à l'aide du bouton Parcourir.
En règle générale, vous indiquez un client unique de l'application de base. Si vous n'indiquez pas de commande de détection, le code généré se contente de se connecter au port utilisé par la ressource puis de se déconnecter. Si cette opération réussit, l'application est déclarée comme étant parfaitement opérationnelle. L'utilisation d'une commande de détection n'est possible qu'avec les applications réseau. Agent Builder génère toujours une commande de détection mais désactive cette fonction avec les applications non prévues pour être utilisées en réseau.
Si votre application nécessite d'indiquer un nom d'hôte sur la ligne de commande de détection, utilisez la variable $hostnames définie par Agent Builder (reportez-vous à la rubrique Utilisation de la variable $hostnames d'Agent Builder).
Délai d'attente : (par commande) : délai d'attente en secondes pour chaque commande. Vous pouvez indiquer une nouvelle valeur ou accepter la valeur par défaut fournie par Agent Builder (300 secondes pour le démarrage et l'arrêt et 30 secondes pour la détection).
Pour de nombreuses applications, notamment les applications réseau, le nom d'hôte sur lequel l'application écoute et gère les requêtes des clients doit être transmis à l'application sur la ligne de commande. Par conséquent, le nom d'hôte est généralement un paramètre que vous devez indiquer pour les commandes de démarrage, d'arrêt et de détection du type de ressources cible (dans l'écran Configurer). Par contre, le nom d'hôte est propre au cluster. Il est déterminé à l'exécution de la ressource sur un cluster et ne peut pas l'être lorsqu'Agent Builder génère le code de votre type de ressources.
Pour pallier ce problème, Agent Builder propose la variable $hostnames que vous pouvez spécifier sur la ligne de commande pour les commandes de démarrage, d'arrêt et de détection. Vous spécifiez la variable $hostnames exactement comme vous indiqueriez un nom d'hôte réel. Exemple :
/opt/network_aware/echo_server -p n°_port -l $hostnames |
Lorsqu'une ressource du type de ressources cible est exécutée sur un cluster, le nom d'hôte LogicalHostname (NomHôteLogique) ou SharedAddress (AdressePartagée) configuré pour cette ressource (dans la propriété de ressource Ressources_réseau_utilisées de cette ressource) est remplacé par la valeur de la variable $hostnames.
Si vous configurez la propriété Ressources_réseau_utilisées avec plusieurs noms d'hôte, ils apparaissent tous dans la variable $hostnames, séparés par des virgules.
Agent Builder peut créer des types de ressources pour les applications intégrant plusieurs arborescences de processus indépendantes. Ces arborescences de processus sont indépendantes dans le sens où la fonction PMF les contrôle et les démarre individuellement. La fonction PMF démarre chaque arborescence de processus avec sa propre balise.
Agent Builder ne vous permet de créer des types de ressources contenant plusieurs arborescences de processus indépendantes que si le code source généré que vous spécifiez est C. Vous ne pouvez pas utiliser Agent Builder pour créer ces types de ressources pour ksh ou GDS. Pour ce faire, vous devez écrire le code manuellement.
Dans le cadre d'une application de base contenant plusieurs arborescences de processus indépendantes, la spécification d'une ligne de commande unique ne suffit pas pour démarrer l'application. Dans ce cas, vous devez créer un fichier texte dont chaque ligne indique le chemin d'accès complet à une commande permettant de démarrer l'une des arborescences de processus de l'application. Ce fichier ne doit contenir aucune ligne vide et être spécifié dans le champ Commande de démarrage de l'écran Configurer.
Vous devez également vous assurer qu'il ne contient aucune autorisation d'exécution. De fait, Agent Builder peut ainsi distinguer ce fichier visant à démarrer plusieurs arborescences de processus d'un simple script exécutable contenant plusieurs commandes. Si ce fichier texte contient des autorisations d'exécution, les ressources s'affichent correctement sur le cluster mais toutes les commandes sont exécutées sous une seule balise PMF. Le cas échéant, la fonction PMF ne peut pas contrôler et redémarrer individuellement les arborescences de processus.
Agent Builder vous permet d'exploiter un travail terminé de plusieurs façons :
Vous pouvez cloner un type de ressources existant créé avec Agent Builder.
Vous pouvez éditer le code source généré par Agent Builder puis recompiler le code pour créer un nouveau package.
Procédez comme suit pour cloner un type de ressources existant généré par Agent Builder :
Chargez un type de ressources existant dans Agent Builder. Pour ce faire, vous pouvez procéder de deux façons :
Lancez Agent Builder à partir du répertoire de travail (dans lequel figure le fichier rtconfig) d'un type de ressources existant (créé avec Agent Builder). Agent Builder charge ensuite les valeurs de ce type de ressources dans les écrans Créer et Configurer.
Utilisez la commande Charger type de ressources du menu Fichier.
Modifiez le répertoire de travail dans l'écran Créer.
Pour ce faire, sélectionnez le répertoire avec le bouton Parcourir, la saisie du nom d'un nouveau répertoire n'étant pas suffisant. Une fois le répertoire sélectionné, Agent Builder active de nouveau le bouton Créer.
Apportez les modifications requises.
Cette procédure vous permet notamment de modifier le type de code généré pour le type de ressources. Par exemple, si vous avez commencé par créer une version ksh d'un type de ressources avant de découvrir qu'il vous faut une version C, vous pouvez charger le type de ressources ksh existant, remplacer le langage de sortie par C, puis utiliser Agent Builder pour concevoir une version C du type de ressources.
Créez le clone du type de ressources.
Sélectionnez Créer pour créer le type de ressources. Sélectionnez Suivant pour passer à l'écran Configurer. Sélectionnez Configurer pour configurer le type de ressources, puis Annuler pour terminer la procédure.
Pour que le processus de création d'un type de ressources reste simple, Agent Builder limite le nombre d'entrées, ce qui restreint la portée du type de ressources généré. Par conséquent, si vous souhaitez ajouter des fonctions plus complexes (des contrôles de validation de propriétés supplémentaires, par exemple) ou régler des paramètres qu'Agent Builder n'affiche pas, vous devez modifier le code source généré ou le fichier RTR.
Les fichiers sources sont disponibles dans le répertoire répertoire_installation /nom_type_res/src. Agent Builder intègre des commentaires dans le code source là où vous pouvez ajouter un code. Exemple (pour un code C) :
/* Code ajouté par l'utilisateur -- BEGIN vvvvvvvvvvvvvvv */ /* Code ajouté par l'utilisateur -- END ^^^^^^^^^^^^^^^ */ |
ces commentaires sont identiques dans le code korn shell à la seule différence que le symbole # est inséré au début d'une ligne de commentaire.
Par exemple, nom_typ_res.h déclare toutes les routines utilitaires que les différents programmes utilisent. À la fin de la liste des déclarations, vous trouverez des commentaires vous permettant de déclarer les autres routines que vous aimeriez ajouter à n'importe quel code source.
Agent Builder génère également un fichier makefile dans le répertoire répertoire_installation/nom_type_res/src avec les cibles appropriées. Les commandes make et make pkg vous permettent respectivement de recompiler le code source et de générer de nouveau le package du type de ressources.
Le fichier RTR figure dans le répertoire répertoire_installation/ nom_type_res/etc. Vous pouvez éditer le fichier RTR au moyen d'un éditeur de texte standard (reportez-vous à la rubrique Paramétrage des propriétés de ressources et de types de ressources pour de plus amples informations sur le fichier RTR et à l'Annexe A pour de plus amples informations sur les propriétés).
La version ligne de commande d'Agent Builder s'appuie sur la même procédure en deux étapes que l'interface utilisateur graphique. Au lieu de saisir les données dans l'interface utilisateur graphique, vous fournissez les paramètres aux commandes scdscreate( 1HA) et scdsconfig (1HA).
Procédez comme suit pour utiliser la version ligne de commande d'Agent Builder :
Utilisez la commande scdscreate pour créer un modèle de type de ressources Sun Cluster permettant de concevoir une application hautement disponible ou évolutive.
Utilisez la commande scdsconfigure pour configurer le modèle de type de ressources créé avec scdscreate.
Remplacez les répertoires par le sous-répertoire pkg dans le répertoire de travail.
Utilisez la commande pkgadd(1M) pour installer les packages que vous avez créés avec scdscreate.
Éditez le code source généré, si vous le souhaitez.
Exécutez le script de démarrage.
Agent Builder crée une structure de répertoire pour stocker tous les fichiers qu'il crée pour le type de ressources cible. Vous spécifiez le répertoire de travail (dans l'écran Créer). Vous devez indiquer des répertoires d'installation distincts pour chaque type de ressources que vous développez. Dans le répertoire de travail, Agent Builder crée un sous-répertoire dont le nom est une concaténation du nom du fournisseur et du nom du type de ressources (depuis l'écran Créer). Par exemple, si vous spécifiez SUNW comme nom de fournisseur et que vous créez un type de ressources que vous nommez ftp, Agent Builder crée le répertoire SUNWftp dans le répertoire de travail.
Dans ce sous-répertoire, Agent Builder crée et remplit les répertoires présentés dans le tableau suivant :
Nom du répertoire |
Contenu |
---|---|
bin |
Spécifique à une sortie C. Contient les fichiers binaires compilés à partir des fichiers sources. Spécifique à une sortie ksh. Contient les mêmes fichiers que le répertoire src. |
etc |
Contient le fichier RTR. Agent Builder concatène le nom du fournisseur et le nom d'application, en les séparant d'un point, pour constituer le nom du fichier RTR. Par exemple, si le fournisseur et le type de ressources s'appellent respectivement SUNW et ftp, le nom du fichier RTR est SUNW.ftp . |
man |
Contient les pages man (man1m) personnalisées des scripts d'utilitaire start, stop et remove. Par exemple, startftp(1M), stopftp(1M) et removeftp (1M).
Pour consulter les pages man, spécifiez le chemin d'accès avec l'option man -M. Par exemple, man -M répertoire_installation/SUNWftp/man removeftp . |
pkg |
Contient le package final. |
src |
Contient les fichiers sources générés par Agent Builder. |
util |
Contient les scripts d'utilitaire start, stop et remove générés par Agent Builder. Reportez-vous à la rubrique Scripts d'utilitaire et pages man. Agent Builder ajoute le nom d'application à chaque nom de script, par exemple, startftp, stopftp, removeftp. |
Cette rubrique décrit la sortie générée par Agent Builder.
Le gestionnaire RGM (Resource Group Manager) permet de gérer les groupes de ressources et, en définitive, les ressources sur un cluster. Il utilise pour ce faire un modèle de rappel. Lorsqu'un événement spécifique se produit, comme un noeud tombant en panne par exemple, le gestionnaire RGM appelle les méthodes du type de ressources de toutes les ressources exécutées sur le noeud défectueux. Par exemple, le gestionnaire RGM appelle la méthode d'Arrêt pour arrêter une ressource fonctionnant sur le noeud défectueux et la méthode de Démarrage de cette ressource pour la lancer sur un autre noeud. (Reportez-vous aux rubriques Modèle RGM et Méthodes de rappel et à la page man rt_callbacks( 1HA) pour de plus amples informations sur ce modèle).
Pour prendre ce modèle en charge, Agent Builder génère (dans le répertoire répertoire_installation/nom_type_res/bin) huit programmes (C) ou scripts (ksh) exécutables servant de méthodes de rappel.
le programme nom_type_res _sonde mettant en oeuvre un système de détection des pannes, n'est pas à proprement parler un programme de rappel. Le gestionnaire RGM n'appelle pas directement nom_type_res _sonde ; il appelle nom_type_res _démarrage_détecteur et nom_type_res _arrêt_détecteur qui exécute et arrête respectivement le système de détection des pannes en appelant nom_type_res_sonde.
Les huit méthodes générées par Agent Builder sont :
nom_type_res_contrôle_détecteur ;
nom_type_res_démarrage_détecteur ;
nom_type_res_arrêt_détecteur ;
nom_type_res_sonde ;
nom_type_res_démarrage_svc ;
nom_type_res_arrêt_svc ;
nom_type_res_mise_à_jour ;
nom_type_res_validation.
Reportez-vous à la page man rt_callbacks( 1HA) pour de plus amples informations sur toutes ces méthodes.
Agent Builder génère les fichiers suivants dans le répertoire répertoire_installation/ nom_type_res/src (sortie C) :
un fichier d'en-tête (nom_type_res .h) ;
un fichier source (nom_type_res .c) contenant le code commun à toutes les méthodes. ;
un fichier d'objets (nom_type_res .o) pour le code commun ;
des fichiers sources (*.c) pour chacune des méthodes ;
des fichiers d'objets (*.o) pour chacune des méthodes.
Agent Builder lie le fichier nom_type_res .o à chaque fichier .o de méthode pour créer les exécutables dans le répertoire répertoire_installation/ nom_type_res/bin.
Avec une sortie ksh, les répertoires répertoire_installation /nom_type_res/bin et répertoire_installation/nom_type_res/src sont identiques. Ils contiennent les huit scripts exécutables correspondant aux sept méthodes de rappel, plus la méthode de SONDE.
la sortie ksh comprend deux programmes utilitaires compilés (gettime et gethostnames) que requièrent certaines méthodes de rappel pour extraire l'heure ou effectuer une détection.
Vous pouvez éditer le code source, exécuter la commande make pour recompiler le code, puis exécuter la commande make pkg pour générer un nouveau package. Pour faciliter la modification du code source, Agent Builder ajoute des commentaires au code source là où il est pertinent d'ajouter du code. Reportez-vous à la rubrique Édition du code source généré.
Vous avez généré un type de ressources et installé le package correspondant sur un cluster. Vous devez encore exécuter une instance (ressource) du type de ressources sur un cluster à l'aide, en règle générale, de commandes administratives ou de SunPlex Manager. Pourtant, par souci de simplicité, Agent Builder génère à cet effet un script d'utilitaire personnalisé (le script de démarrage), ainsi que des scripts d'arrêt et de suppression d'une ressource du type de ressources cible. Ces trois scripts, disponibles dans le répertoire répertoire_installation/nom_type_res/util, ont les fonctions suivantes :
Script de démarrage : enregistre le type de ressources et crée les ressources et les groupes de ressources nécessaires. Il crée également les ressources d'adresse réseau (LogicalHostname ou SharedAddress) qui permettent à l'application de communiquer avec les clients sur le réseau.
Script d'arrêt : arrête et désactive la ressource.
Script de suppression : annule le travail du script de démarrage. Il arrête et supprime du système les ressources, les groupes de ressources et le type de ressources cible.
vous ne pouvez utiliser le script de suppression qu'avec une ressource exécutée à l'aide du script de démarrage car ces scripts utilisent des conventions internes pour nommer les ressources et les groupes de ressources.
Agent Builder attribue un nom à ces scripts en ajoutant le nom d'application aux noms de script. Par exemple, si le nom d'application est ftp , les scripts sont appelés startftp, stopftp et removeftp.
Agent Builder contient des pages man dans le répertoire répertoire_installation/nom_type_res/man/man1m de chaque script d'utilitaire. Vous devez les lire avant de lancer ces scripts car elles présentent les paramètres qu'il vous faut fournir au script.
Pour consulter ces pages man, indiquez le chemin d'accès au répertoire correspondant en utilisant l'option -M avec la commande man. Par exemple, si le nom du fournisseur est SUNW et le nom d'application ftp, utilisez la commande suivante pour afficher la page man startftp (1M) :
man -M répertoire_installation/SUNWftp/man startftp |
Les scripts d'utilitaire des pages man sont également disponibles auprès de l'administrateur du cluster. Lorsqu'un package généré par Agent Builder est installé sur un cluster, les pages man des scripts d'utilitaire sont placées dans le répertoire /opt/ nom_type_res/man. Par exemple, utilisez la commande suivante pour afficher la page man startftp(1M) :
man -M /opt/SUNWftp/man startftp |
Agent Builder place les fichiers de prise en charge, comme pkginfo, postinstall, postremove et preremove, dans le répertoire répertoire_installation/nom_type_res/etc. Ce répertoire contient également le fichier RTR (resource type registration), qui déclare les propriétés de ressource et de type de ressources disponibles pour le type de ressources cible et initialise les valeurs de propriétés au moment de la mise en ligne d'une ressource sur un cluster (reportez-vous à la rubrique Paramétrage des propriétés de ressources et de types de ressources pour de plus amples informations). Le fichier RTR s'appelle nom_fournisseur. nom_type_ressources : par exemple SUNW.ftp.
Vous pouvez modifier ce fichier à l'aide d'un éditeur de texte standard et apporter des modifications sans recompiler votre code source. Vous devez, cependant, reconstituer le package avec la commande make pkg.
Le répertoire répertoire_installation/nom_type_res/pkg contient un package Solaris. Le nom du package est une concaténation du nom du fournisseur et du nom d'application, par exemple SUNWftp. Le fichier Makefile situé dans le répertoire répertoire_installation/nom_type_res/src prend en charge la création d'un nouveau package. Par exemple, si vous modifiez les fichiers sources et recompilez le code ou si vous modifiez les scripts d'utilitaire du package, vous devez utiliser la commande make pkg pour créer un nouveau package.
La commande pkgrm peut échouer lors de la suppression d'un package d'un cluster si vous tentez de l'exécuter sur plusieurs noeuds simultanément. Vous pouvez pallier ce problème de l'une des deux façons suivantes :
Exécutez le script removenom_type_res sur l'un des noeuds du cluster avant d'exécuter pkgrm sur un autre noeud.
Exécutez pkgrm sur l'un des noeuds du cluster (cette commande veille à éliminer toutes les données superflues), puis exécutez-la sur les noeuds restants, simultanément au besoin.
Si la commande pkgrm échoue car vous tentez de l'exécuter simultanément sur plusieurs noeuds, lancez-la de nouveau noeud par noeud, puis sur les noeuds restants.
Si vous générez un code source C ou ksh, dans le répertoire de travail, Agent Builder génère un fichier de configuration rtconfig contenant les données que vous avez saisies dans les écrans Créer et Configurer. Si vous lancez Agent Builder depuis le répertoire de travail d'un type de ressources existant (ou que vous chargez un type de ressources existant à l'aide de la commande Charger type de ressources du menu Fichier), Agent Builder lit le contenu du fichier rtconfig et renseigne les champs des écrans Créer et Configurer à l'aide des données que vous avez fournies pour le type de ressources existant. Cette fonction s'avère pratique si vous souhaitez cloner le type de ressources existant (reportez-vous à la rubrique Clonage d'un type de ressources existant.
La navigation dans Agent Builder est simple et intuitive. Agent Builder est un assistant en deux étapes constitué d'un écran par étape (les écrans Créer et Configurer). Vous renseignez les champs de chaque écran au moyen des actions suivantes :
Saisie des données dans un champ.
Parcours de la structure de répertoires et sélection d'un fichier ou d'un répertoire.
Sélection d'un ensemble de cases d'option mutuellement exclusives, par exemple, Évolutif ou Basculement.
Sélection d'une case d'activation/désactivation. Par exemple, si vous sélectionnez Compatible réseau, l'application de base est identifiée comme une application réseau tandis que si cette case n'est pas sélectionnée, l'application est identifiée comme une application non prévue pour être utilisée en réseau.
Les boutons en bas de chaque écran vous permettent de terminer la tâche, de passer à l'écran suivant ou précédent ou de quitter Agent Builder. Agent Builder active ou désactive ces boutons comme il se doit.
Par exemple, après avoir renseigné les champs et coché les options souhaitées dans l'écran Créer, cliquez sur le bouton Créer en bas de l'écran. Les boutons Précédent et Suivant sont désactivés car il n'y a pas d'écran précédent et vous ne pouvez pas accéder à l'écran suivant tant que vous n'avez pas terminé de renseigner l'écran actuel.
Agent Builder affiche des messages de progression dans la zone du journal située en bas de l'écran. Lorsqu'il a terminé, il affiche un message indiquant que l'opération a réussi ou un avertissement vous invitant à consulter le journal. Le bouton Suivant est mis en surbrillance. Si vous êtes dans le dernier écran, seul le bouton Annuler est mis en surbrillance.
Vous pouvez sélectionner Annuler à tout moment pour quitter Agent Builder.
Vous pouvez renseigner les champs d'Agent Builder en entrant des données ou en cliquant sur le bouton Parcourir pour parcourir votre structure de répertoire et sélectionner un fichier ou un répertoire.
Lorsque vous cliquez sur Parcourir, un écran similaire à l'écran suivant apparaît :
Cliquez deux fois sur un dossier pour l'ouvrir. Lorsque vous mettez un fichier en surbrillance, son nom apparaît dans le champ Nom de fichier. Cliquez sur Sélectionner lorsque vous avez localisé et mis en surbrillance le fichier approprié.
si vous recherchez un répertoire, mettez-le en surbrillance et sélectionnez le bouton Ouvrir. S'il ne contient aucun sous-répertoire, Agent Builder ferme la fenêtre Parcourir et insère le nom du répertoire mis en surbrillance dans le champ approprié. S'il contient des répertoires, cliquez sur le bouton Fermer pour fermer la fenêtre et revenir à l'écran précédent. Agent Builder insère le nom du répertoire mis en surbrillance dans le champ approprié.
Fonction des icônes situées dans le coin supérieur droit de l'écran :
|
Cette icône permet de monter d'un niveau dans la structure de répertoire. |
|
Cette icône permet de revenir au dossier personnel. |
|
Cette icône crée un nouveau dossier sous le dossier actuellement sélectionné. |
|
Cette icône permet de basculer entre différents affichages. Elle est dédiée à une utilisation ultérieure. |
Agent Builder contient les menus Fichier et Édition.
Le menu Fichier comprend deux commandes :
Charger type de ressources : ce menu permet de charger un type de ressources existant. Dans Agent Builder, un écran de recherche vous permet de sélectionner le répertoire de travail d'un type de ressources existant. Si le répertoire à partir duquel vous avez lancé Agent Builder contient un type de ressources, Agent Builder charge automatiquement ce type de ressources. La commande Charger type de ressources permet de lancer Agent Builder depuis n'importe quel répertoire et de sélectionner un type de ressources existant à utiliser comme modèle pour créer un nouveau type de ressources (reportez-vous à la rubrique Clonage d'un type de ressources existant).
Quitter : permet de quitter Agent Builder. Vous pouvez également quitter Agent Builder en cliquant sur Annuler dans l'écran Créer ou Configurer.
Le menu Éditer comprend des commandes permettant d'effacer et d'enregistrer le journal :
Effacer journal : efface les données contenues dans le journal. Chaque fois que vous sélectionnez Créer ou Configurer, Agent Builder ajoute des messages d'état dans le journal. Lors d'un processus répétitif de modification de votre code source nécessitant de générer de nouveau la sortie dans Agent Builder, vous pouvez enregistrer et effacer le fichier journal avant chaque utilisation si vous souhaitez isoler les messages d'état.
Enregistrer fichier journal : enregistre le journal dans un fichier. Dans Agent Builder, un écran de recherche vous permet de sélectionner le répertoire et de saisir un nom de fichier.
Le module Cluster Agent pour Agent Builder est un module NetBeansTM permettant aux utilisateurs de SunTM ONE Studio de créer des types de ressources ou des services de données pour le logiciel Sun Cluster à l'aide d'un environnement de développement intégré. Ce module se caractérise par une interface écran permettant de décrire chaque sorte de type de ressources que vous souhaitez créer.
la documentation de Sun ONE Studio présente les procédures de configuration, d'installation et d'utilisation de ce logiciel.
Le module Cluster Agent est installé en même temps que le logiciel Sun Cluster. L'outil d'installation de Sun Cluster enregistre le fichier du module Cluster Agent scdsbuilder.jar sous /usr/cluster/lib/scdsbuilder. Pour utiliser le module Cluster Agent avec le logiciel Sun ONE Studio, vous devez créer un lien symbolique vers ce fichier.
les logiciels Sun Cluster et Sun ONE Studio et Java TM 1.4 doivent être installés et disponibles sur le système sur lequel vous envisagez d'exécuter le module Cluster Agent.
Configuration de l'accès multi-utilisateur ou mono-utilisateur au module Cluster Agent
Pour permettre à tous les utilisateurs d'accéder au module Cluster Agent, connectez-vous en tant que superutilisateur ou équivalent et créez un lien symbolique dans le répertoire global du module :
# cd /opt/s1studio/ee/modules # ln -s /usr/cluster/lib/scdsbuilder/scdsbuilder.jar |
si vous installez le logiciel Sun ONE Studio dans un autre répertoire que /opt/s1studio/ee, remplacez ce chemin d'accès par le chemin d'accès approprié.
Pour être le seul à pouvoir accéder au module, créez le lien symbolique dans votre sous-répertoire modules :
% cd ~votre_rép_personnel/ffjuser40ee/modules % ln -s /usr/cluster/lib/scdsbuilder/scdsbuilder.jar |
Fermez et relancez le logiciel Sun ONE Studio.
La procédure suivante décrit comment démarrer le module Cluster Agent à partir du logiciel Sun ONE Studio.
Sélectionnez Nouveau dans le menu Fichier de Sun ONE Studio ou cliquez sur l'icône suivante dans la barre d'outils :
L'écran Assistant Nouveau apparaît.
Faites défiler la liste (si nécessaire) dans la fenêtre Sélectionner un modèle, puis cliquez sur la clé en regard du dossier Autre :
Le menu Autre s'ouvre.
Dans le menu Autre, sélectionnez Sun Cluster Agent Builder, puis cliquez sur Suivant.
Le module Cluster Agent pour Sun One Studio démarre. Le premier écran Assistant Nouveau - Sun Cluster Agent Builder apparaît.
Utilisez le module Cluster Agent de la même façon que le logiciel Agent Builder. Leurs interfaces sont identiques. Par exemple, les illustrations suivantes montrent que l'écran Créer du logiciel Agent Builder et le premier écran Assistant Nouveau - Sun Cluster Agent Builder du module Cluster Agent contiennent les mêmes champs et sélections.
Malgré la grande similitude entre le module Cluster Agent et Agent Builder, il existe quelques petites différences :
Dans le module Cluster Agent, le type de ressources n'est créé et configuré qu'après avoir cliqué sur Terminer dans le second Assistant Nouveau - Sun Cluster Agent Builder. Le type de ressources n'est pas créé lorsque vous cliquez sur Suivant dans le premier écran Assistant Nouveau - Sun Cluster Agent Builder.
Dans Agent Builder, le type de ressources est créé immédiatement lorsque vous cliquez sur Créer dans l'écran Créer. Il est de même configuré immédiatement lorsque vous cliquez sur Configurer dans l'écran Configurer.
Les données figurant dans la fenêtre Journal d'Agent Builder apparaissent dans une fenêtre de résultat dans le logiciel Sun ONE Studio.