Ce chapitre décrit SunPlex Agent Builder et le module Cluster Agent pour Agent Builder. Ces deux outils automatisent la création de types de ressources ou de services de données, qui fonctionnent sous le contrôle du Gestionnaire de groupe de ressources (RGM). Un type de ressource est un wrapper autour d'une application, qui lui permet de fonctionner dans un environnement clusterisé, sous le contrôle du RGM.
Ce chapitre contient les rubriques suivantes :
Agent Builder fournit une interface utilisateur graphique (GUI) qui vous permet de préciser des informations concernant des applications et le type de ressource que vous souhaitez créer. Agent Builder prend en charge aussi bien des applications reconnaissant le réseau que celles ne le reconnaissant pas. Les premières utilisent le réseau pour communiquer avec les clients. Les secondes sont des applications autonomes.
Si la version de l'interface utilisateur graphique de Agent Builder n'est pas accessible, vous pouvez accéder à Agent Builder via l'interface de ligne de commande. Voir Utilisation de la version de ligne de commande d'Agent Builder .
Selon les informations que vous spécifiez, Agent Builder génère les logiciels suivants :
Un ensemble d'interpréteurs de commande C ou korn shell (ksh), ou de fichiers source de services de données génériques (GDS) pour un type de ressource de basculement ou évolutif qui correspond aux rappels de méthode du type de ressource. Ces fichiers sont destinés aussi bien aux applications qui reconnaissent le réseau (modèle serveur-client) qu'à celles qui ne le reconnaissent pas (sans clients).
Un fichier d'enregistrement de type de ressource (RTR) personnalisé (si vous générez du code source en C ou korn shell).
Des scripts d'utilitaire personnalisés pour lancer, arrêter et supprimer une instance (ressource) du type de ressource, ainsi que des pages de manuel personnalisées qui expliquent comment utiliser chacun de ces fichiers.
Un package Solaris comprenant les codes binaires (si vous générez du code source C), un fichier RTR (si vous générez du code source en C ou en korn shell) et les scripts d'utilitaire.
Agent Builder vous permet également de générer un type de ressources pour une application possédant plusieurs arborescences de processus indépendantes que la fonction PMF (Process Monitor Facility) doit surveiller et redémarrer individuellement.
Avant d'utiliser Agent Builder, vous devez savoir comment créer des types de ressource avec plusieurs arborescences de processus indépendantes.
Agent Builder peut créer des types de ressource pour des applications comportant plusieurs arborescences de processus indépendantes. Ces arborescences sont indépendantes dans la mesure où la fonction PMF les surveille et les démarre individuellement, et ce avec leur propre balise.
Agent Builder vous permet de créer des types de ressources avec plusieurs arborescences de processus indépendantes, uniquement si le code source généré que vous indiquez est de type C ou GDS. Vous ne pouvez pas utiliser Agent Builder pour créer ces types de ressources avec le code source korn shell. Pour créer ces types de ressource pour le korn shell, 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 pas contenir de lignes vides. Vous devez le spécifier dans le champ Commande de démarrage de l'écran de configuration de Agent Builder.
Vérifiez que le fichier ne contient aucun droit d'exécution pour que Agent Builder puisse le reconnaître. Ce fichier permet de démarrer plusieurs arborescences de processus à partir d'un seul script exécutable contenant plusieurs commandes. Si ce fichier texte dispose de droits d'exécution, les ressources s'affichent correctement sur le cluster, mais toutes les commandes sont exécutées sous une seule balise PMF. La fonction PMF est alors incapable de surveiller et de redémarrer les arborescences de processus individuellement.
Cette section explique comment utiliser Agent Builder. Elle indique aussi les tâches que vous devez effectuer avant de pouvoir utiliser Agent Builder. Vous y découvrirez également comment profiter de cet outil après avoir généré le code du type de ressources.
Les rubriques traitées sont les suivantes :
Utilisation de la variable $hostnames basée sur le korn shell de Agent Builder
Utilisation de la version de ligne de commande d'Agent Builder
Avant d'utiliser Agent Builder, vous devez déterminer si l'application que vous souhaitez rendre hautement disponible ou évolutive répond aux critères requis. Agent Builder ne peut pas réaliser cette analyse qui s'appuie uniquement sur les caractéristiques du temps d'exécution de l'application. Pour plus d'informations à ce sujet, voir Analyse du caractère approprié de l'application.
Agent Builder ne sera peut-être pas toujours en mesure de créer un type de ressource complet pour votre application. Toutefois, dans la plupart des cas, Agent Builder fournit au moins une solution partielle. Les applications plus complexes nécessitent parfois du code supplémentaire, que Agent Builder ne génère pas par défaut, comme le code qui permet d'ajouter des marques de validation pour les propriétés supplémentaires ou de régler les paramètres que Agent Builder n'affiche pas. Le cas échéant, vous devez apporter des modifications au code source généré ou au fichier RTR. Agent Builder est spécialement conçu pour fournir ce type de flexibilité.
Agent Builder place des commentaires en des endroits bien précis du code source généré, où vous pouvez ajouter votre propre code de type de ressource. 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 écrivez tout votre code de type de ressource sans utiliser de code généré par Agent Builder, vous pouvez utiliser le fichier makefile et la structure fournis par Agent Builder pour créer le package Solaris pour votre type de ressource.
Agent Builder ne nécessite aucune installation particulière. Agent Builder est inclus dans le package SUNWscdev, qui est installé par défaut avec le logiciel Sun Cluster. Pour plus d'informations, voir Guide d’installation du logiciel Sun Cluster pour SE Solaris.
Avant d'utiliser Agent Builder, vérifiez les points suivants :
L'environnement d'exécution Java est inclus dans votre variable $PATH. Agent Builder fonctionne avec la version 1.3.1. ou une version ultérieure du kit de développement Java. Si ce kit n'est pas inclus dans votre variable $PATH, la commande de Agent Builder (scdsbuilder) renvoie et affiche un message d'erreur.
Vous avez installé au minimum la version Solaris 8 du groupe de logiciels du Support système développeur.
Le compilateur cc est inclus dans votre variable $PATH . Agent Builder se sert de la première occurrence de cc dans votre variable $PATH pour identifier le compilateur à utiliser pour générer le code binaire C du type de ressource. Si cc n'est pas inclus dans $PATH, Agent Builder désactive l'option permettant de générer le code C. Voir Utilisation de l'écran Créer.
Avec Agent Builder, vous pouvez utiliser un autre compilateur que le compilateur standard cc. Pour ce faire, créez un lien symbolique dans $PATH de cc vers un autre compilateur, tel que gcc. Vous pouvez également changer le compilateur spécifié dans le fichier makefile (actuellement CC=cc) en saisissant le chemin complet d'un autre compilateur. Par exemple, dans le fichier makefile généré par Agent Builder, remplacez CC=cc par CC=pathname/gcc. Si vous procédez à cette modification, vous ne pouvez pas exécuter Agent Builder directement. Au lieu de cela, vous devez utiliser les commandes make et make pkg pour générer du code de service de données et le package.
Agent Builder est un assistant en deux étapes, chacune d'elles disposant d'un écran. Agent Builder comprend les deux écrans suivants qui vous guident tout au long du processus de création d'un nouveau type de ressource :
L'écran Créer. Cet écran vous permet d'entrer des informations de base sur le type de ressource à créer, telles que son nom et le répertoire de travail où placer les fichiers générés. Le répertoire de travail constitue l'emplacement de création et de configuration du modèle de type de ressource. Vous pouvez également préciser les informations suivantes :
Le type de ressource à créer (évolutive ou de basculement)
Si l'application de base reconnaît le réseau (c'est-à-dire si elle utilise le réseau pour communiquer avec les clients)
Le type de code à générer (C, korn shell (ksh) ou GDS)
Pour plus d'informations sur GDS, voir Chapitre 10, Services de données génériques. Vous devez remplir tous les champs d'information de cet écran et sélectionner Créer pour générer la sortie correspondante. Ensuite, vous pouvez afficher l'écran Configurer.
L'écran Configurer. Sur cet écran, vous devez spécifier la ligne de commande complète qui peut être transmise à un shell UNIX pour démarrer votre application de base. Si vous le souhaitez, vous pouvez fournir des commandes permettant d'arrêter et d'analyser l'application. Si vous ne spécifiez pas ces deux commandes, la sortie générée utilise des signaux pour arrêter l'application et propose un mécanisme de sonde par défaut. Voir la description de la commande de la sonde à la section Utilisation de l'écran Configurer. L'écran Configurer vous permet également de modifier les valeurs de délai d'attente pour chacune de ces trois commandes : démarrage, arrêt, sonde.
Si la version d'interface utilisateur graphique de Agent Builder n'est pas accessible, vous pouvez accéder à Agent Builder via l'interface de ligne de commande. Voir Utilisation de la version de ligne de commande d'Agent Builder .
Si vous lancez Agent Builder à partir d'un répertoire de travail pour un type de ressource existant, Agent Builder initialise les écrans de création et de configuration en fonction des valeurs de ce type de ressource.
Lancez Agent Builder en entrant la commande suivante :
% /usr/cluster/bin/scdsbuilder |
L'écran Créer apparaît.
Procédez de la manière suivante pour entrer des informations sur les écrans de création et de configuration :
Tapez l'information dans le champ correspondant
Parcourez votre arborescence et choisissez un fichier ou un répertoire
Choisissez un bouton radio excluant tous les autres, par exemple le bouton correspondant à "évolutif" ou à "basculement"
Cochez la case de reconnaissance du réseau pour caractériser l'application de base comme reconnaissant le réseau. Sinon, laissez cette case décochée
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 fait ressortir ces boutons ou les grise, le cas échéant.
Par exemple, lorsque vous avez rempli les champs et sélectionné les options de votre choix sur l'écran Créer, cliquez sur Créer en bas de l'écran. Les options Précédent et Suivant sont grisées car il n'existe aucun écran précédent et vous ne pouvez pas passer à l'étape suivante avant d'avoir effectué celle-ci.
Agent Builder affiche des messages de progression dans la zone Journal de sortie située en bas de l'écran. Lorsque l'opération est terminée, il affiche un message de réussite ou un avertissement. Le bouton Suivant est activé ou, s'il s'agit du dernier écran, seul le bouton Annuler est mis en surbrillance.
Vous pouvez cliquer sur Annuler à tout moment pour quitter Agent Builder.
Certains champs Agent Builder vous permettent d'entrer des informations. D'autres champs vous invitent à cliquer sur Parcourir pour naviguer dans une arborescence et sélectionner un fichier ou un répertoire.
Lorsque vous cliquez sur Parcourir, un écran semblable à celui-ci apparaît.
Double-cliquez sur un dossier pour l'ouvrir. Lorsque vous déplacez le curseur sur un fichier, son nom apparaît dans le champ correspondant au nom de fichier. Après avoir localisé le fichier souhaité et pointé le curseur dessus, cliquez sur Sélectionner.
Si vous recherchez un répertoire, positionnez le curseur sur le répertoire souhaité et cliquez sur Ouvrir. Si le répertoire ne contient aucun sous-répertoire, Agent Builder ferme la fenêtre du navigateur et place le nom du répertoire sur lequel vous avez déplacé le curseur dans le champ approprié. S'il contient des sous-répertoires, cliquez sur Fermer pour faire disparaître la fenêtre et revenir à l'écran précédent. Agent Builder place le nom du répertoire sur lequel vous avez placé le curseur dans le champ approprié.
Les icônes situées dans le coin supérieur droit de l'écran Parcourir permettent d'effectuer les opérations suivantes :
Icône |
Objet |
---|---|
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 propose les menus déroulants Fichier et Édition.
Le menu Fichier contient deux options :
Charger type de ressources : Permet de charger un type de ressource 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 un type de ressource existe dans le répertoire à partir duquel vous démarrez Agent Builder, celui-ci charge automatiquement le type de ressource. L'option de chargement du type de ressource vous permet de lancer Agent Builder à partir de n'importe quel répertoire et de sélectionner un type de ressource existant à utiliser en tant que modèle pour créer un nouveau type de ressource. Voir Réutilisation du code créé avec Agent Builder .
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 Édition contient deux options :
Effacer le journal de sortie : permet de supprimer les informations du journal. Chaque fois que vous sélectionnez Créer ou Configurer, Agent Builder ajoute des messages d'état dans le journal. Si vous modifiez votre code source de manière itérative, si vous générez à nouveau la sortie dans Agent Builder et souhaitez distinguer les messages d'état, vous pouvez enregistrer et effacer le fichier journal avant chaque utilisation.
Enregistrer journal : permet d'enregistrer la sortie du journal dans un fichier. Agent Builder fournit un écran de navigation qui vous permet de sélectionner le répertoire et de spécifier un nom de fichier.
Pour créer un type de ressource, vous devez en premier lieu remplir les champs de l'écran Créer, qui apparaît lorsque vous démarrez Agent Builder. La capture suivante représente l'écran Créer une fois que vous avez entré les informations dans les champs.
L'écran Créer contient les champs, les cases d'option et les cases à cocher suivantes :
ID du fournisseur : nom identifiant le fournisseur du type de ressources. En général, on précise le symbole du fournisseur. Toutefois, tout nom permettant d'identifier le fournisseur de manière unique est considéré comme valable. N'utilisez que des caractères alphanumériques.
Nom de l'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. Avec le système d'exploitation Solaris 9, la combinaison du nom du fournisseur et du nom d'application peut dépasser neuf caractères. En revanche, elle ne doit pas dépasser neuf caractères si vous utilisez une version précédente du système d'exploitation Solaris.
Version TR : version du type de ressources. Le champ Version TR fait la distinction entre les différentes versions enregistrées ou les mises à niveau d'un même type de ressources.
Vous ne pouvez pas utiliser les caractères suivants dans le champ Version TR :
Espace
Onglet
Barre oblique (/)
Barre oblique inverse (\)
Astérisque (*)
Point d'interrogation (?)
Virgule (,)
Point virgule (;)
Crochet gauche ([)
Crochet droit (])
Répertoire de travail : Répertoire sous lequel Agent Builder crée une structure de répertoire destinée à contenir tous les fichiers qui sont créés pour le type de ressource 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 avec le chemin du répertoire à partir duquel vous avez démarré Agent Builder. Toutefois, vous pouvez taper un autre nom ou utiliser l'option Parcourir pour rechercher un autre répertoire.
Sous le répertoire de travail, Agent Builder crée un sous-répertoire contenant le nom du type de ressources. Par exemple, si SUNW est le nom du fournisseur et ftp, le nom de l'application, Agent Builder nomme ce sous-répertoire SUNWftp.
Agent Builder place tous les répertoires et fichiers du type de ressources cible dans ce sous-répertoire. Voir Structure de répertoire créée par Agent Builder .
Évolutif ou Basculement : précisez le type de ressource cible.
Compatible réseau : indique si l'application de base est sensible au réseau, c'est-à-dire si elle utilise le réseau pour communiquer avec ses clients. Cochez la case de reconnaissance du réseau pour indiquer que l'application reconnaît le réseau. Sinon, laissez cette case décochée.
C, ksh : indique le langage du code source généré. Bien que ces options ne puissent pas être sélectionnées en même temps, Agent Builder vous permet de créer un type de ressource avec génération de code korn shell et de réutiliser les mêmes informations pour créer un code C généré. Voir Réutilisation du code créé avec Agent Builder .
GDS : indique qu'il s'agit d'un service de données générique (Generic Data Service, GDS). Pour plus d'informations sur la création et la configuration d'un service de données générique, voir Chapitre 10, Services de données génériques.
Si le compilateur cc n'est pas inclus dans votre variable $PATH, Agent Builder grise le bouton radio C et vous permet de sélectionner le bouton ksh. Pour spécifier un autre compilateur, reportez-vous à la remarque à la fin de la section Installation et configuration d'Agent Builder.
Une fois que vous avez entré les informations requises, cliquez sur Créer. Située en bas de l'écran, la zone Journal de sortie montre les actions effectuées par Agent Builder. Vous pouvez choisir l'option Enregistrer journal du menu Éditer pour enregistrer les informations dans le journal.
Une fois l'opération terminée, Agent Builder affiche un message indiquant qu'elle a été correctement effectuée ou un avertissement.
Si Agent Builder n'a pas pu effectuer cette opération, consultez le journal de sortie pour savoir pourquoi.
Si l'opération a pu être effectuée correctement, cliquez sur Suivant pour afficher l'écran Configurer. L'écran Configurer vous permet de terminer le processus de génération du type de ressource.
Bien que la génération d'un type de ressource complet se fasse en deux étapes, vous pouvez quitter Agent Builder après la première étape (création) sans perdre les informations que vous avez entrées, ni le travail effectué par Agent Builder. Voir Réutilisation du code créé avec Agent Builder .
L'écran Configurer, représenté sur la capture suivante, apparaît une fois que Agent Builder a terminé de créer le type de ressource et que vous avez cliqué sur Suivant sur 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 qui peut être transmise à tout shell UNIX pour lancer l'application de base. Vous devez indiquer une commande de démarrage. Vous pouvez taper la commande dans le champ prévu à cet effet, ou utiliser Parcourir pour rechercher un fichier qui contienne la commande permettant de démarrer l'application.
La ligne de commande complète doit inclure tous les éléments nécessaires pour lancer l'application, tels que les noms d'hôte, les numéros de port et un chemin d'accès aux fichiers de configuration. Vous pouvez également spécifier des variables de propriété, qui sont décrites dans Utilisation des variables de propriété. Si l'application korn shell requiert la définition d'un nom d'hôte dans la ligne de commande, vous pouvez utiliser la variable $hostnames définie par Agent Builder. Voir Utilisation de la variable $hostnames basée sur le korn shell de Agent Builder.
Ne placez pas la commande entre guillemets (””).
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 (Process Monitor Facility ), vous ne pouvez indiquer aucune commande. À la place, vous devez créer un fichier texte qui contienne les commandes individuelles permettant de lancer chaque arborescence de processus, puis spécifier le chemin d'accès à ce fichier dans le champ Commande de démarrage. Voir Avant d'utiliser Agent Builder. Cette section énumère certains caractères spéciaux dont ce fichier a besoin pour fonctionner correctement.
Commande d'arrêt : ligne de commande complète qui peut être transmise à tout shell UNIX pour arrêter l'application de base. Vous pouvez saisir la commande dans le champ prévu à cet effet, ou utiliser la fonction Parcourir pour rechercher un fichier qui contienne la commande permettant d'arrêter l'application. Vous pouvez également spécifier des variables de propriété, qui sont décrites dans Utilisation des variables de propriété. Si l'application korn shell requiert la définition d'un nom d'hôte dans la ligne de commande, vous pouvez utiliser la variable $hostnames définie par Agent Builder. Voir Utilisation de la variable $hostnames basée sur le korn shell de Agent Builder.
Cette commande est facultative. Si vous n'indiquez pas de commande d'arrêt, le code généré utilise les signaux (de la méthode Stop) pour arrêter l'application, comme suit :
La méthode Stop 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 Stop 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 ne fonctionne pas, la méthode Stop ne permet pas de quitter l'application. Les 5 % restants du délai d'attente sont considérés comme temps système.
veillez à ce que la commande d'arrêt ne soit pas renvoyée avant l'arrêt complet de l'application.
Commande d'analyse : Commande qui peut être exécutée périodiquement pour vérifier l'état de l'application et renvoyer un état de sortie compris entre 0 (réussite) et 100 (échec total). Cette commande est facultative. Vous pouvez saisir le chemin d'accès complet à la commande, ou utiliser l'option Parcourir pour rechercher un fichier qui contienne les commandes permettant de sonder l'application.
En règle générale, vous indiquez un client unique de l'application de base. Si vous ne spécifiez aucune commande de sonde, le code généré se connecte et se déconnecte simplement du port utilisé par la ressource. Si la connexion et la déconnexion fonctionnent, le code généré signale que l'application fonctionne parfaitement. Vous pouvez également spécifier des variables de propriété, qui sont décrites dans Utilisation des variables de propriété. Si l'application korn shell requiert la définition d'un nom d'hôte dans la ligne de commande, vous pouvez utiliser la variable $hostnames définie par Agent Builder. Voir Utilisation de la variable $hostnames basée sur le korn shell de Agent Builder.
Ne placez pas la commande entre guillemets (””).
Délai d'attente : valeur de délai d'attente, en secondes, pour chaque commande. Vous pouvez spécifier une nouvelle valeur, ou accepter la valeur par défaut fournie par Agent Builder. La valeur par défaut est de 300 secondes pour le démarrage et l'arrêt et de 30 secondes pour la commande de la sonde.
Pour de nombreuses applications, en particulier celles qui reconnaissent le réseau, le nom d'hôte sur lequel l'application écoute et les requêtes des clients de services doivent ê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 sur l'écran Configurer pour les commandes de démarrage, d'arrêt et de sonde du type de ressource cible. Le nom d'hôte d'écoute de l'application est propre au cluster. Le nom d'hôte est déterminé lorsque la ressource est exécutée sur un cluster. Il ne peut pas être déterminé lorsque Agent Builder génère votre code de type de ressource.
Pour résoudre ce problème, Agent Builder fournit la variable $hostnames, que vous pouvez spécifier sur la ligne de commande pour les commandes de démarrage, d'arrêt et de sonde.
La variable $hostnames n'est prise en charge que lorsqu'elle est utilisée avec les services korn shell. Elle ne peut pas être utilisée avec les services C et GDS.
Vous spécifiez la variable $hostnames exactement comme vous indiqueriez un nom d'hôte réel. Exemple :
% /opt/network_aware/echo_server -p port-no -l $hostnames |
Lorsqu'une ressource du type de ressource cible est exécutée sur un cluster, le nom d'hôte LogicalHostname ou SharedAddress qui est configuré pour cette ressource est remplacé par la valeur de la variable $hostnames. Le nom d'hôte est configuré pour cette ressource dans la propriété Network_resources_used de la ressource.
Si vous configurez la propriété Network_resources_used avec plusieurs noms d'hôte, la variable $hostnames contient tous les noms d'hôte, séparés par une virgule.
Vous pouvez également récupérer les valeurs des propriétés d'un type de ressource, d'une ressource et d'un groupe de ressources Sun Cluster, sélectionnées à partir de la structure RGM à l'aide de variables de propriété. Agent Builder recherche les variables de propriété dans vos chaînes de commande de démarrage, d'arrêt ou de sonde et les remplace par leurs valeurs avant que Agent Builder n'exécute la commande.
Les variables de propriété ne peuvent pas être utilisées avec des services korn shell.
Cette section répertorie les variables de propriété que vous pouvez utiliser. Les propriétés du type de ressource, de la ressource et du groupe de ressources Sun Cluster sont décrites à la section Annexe A, Propriétés standard.
RS_CHEAP_PROBE_INTERVAL
RS_MONITOR_START_TIMEOUT
RS_MONITOR_STOP_TIMEOUT
RS_NAME
RS_NUM_RESTARTS
RS_RESOURCE_DEPENDENCIES
RS_RESOURCE_DEPENDENCIES_WEAK
RS_RETRY_COUNT
RS_RETRY_INTERVAL
RS_SCALABLE
RS_START_TIMEOUT
RS_STOP_TIMEOUT
RS_THOROUGH_PROBE_INTERVAL
SCHA_STATUS
RG_GLOBAL_RESOURCES_USED
RG_IMPLICIT_NETWORK_DEPENDENCIES
RG_MAXIMUM_PRIMARIES
RG_NAME
RG_NODELIST
RG_NUM_RESTARTS
RG_PATHPREFIX
RG_PINGPONG_INTERVAL
RG_RESOURCE_LIST
Vous devez ajouter le symbole du pourcentage (%) avant un nom de propriété pour indiquer la présence d'une variable de propriété, comme dans l'exemple suivant :
/opt/network_aware/echo_server -t %RS_STOP_TIMEOUT -n %RG_NODELIST
Si l'on prend cet exemple, Agent Builder pourrait interpréter ces variables de propriété et lancer le script echo_server avec les valeurs suivantes :
/opt/network_aware/echo_server -t 300 -n phys-node-1,phys-node-2,phys-node-3
Agent Builder interprète les types de variable de propriété de la manière suivante :
Un nombre entier est remplacé par sa valeur réelle (300, par exemple).
Une valeur booléenne est remplacée par la chaîne TRUE ou FALSE.
Une chaîne est remplacée par la chaîne réelle (phys-node-1, par exemple).
Une liste de chaînes est remplacée par tous les éléments de la liste, chaque chaîne étant séparée par une virgule (phys-node-1,phys-node-2,phys-node-3, par exemple).
Une liste de nombres entiers est remplacée par tous les éléments de la liste, chaque nombre entier étant séparé par une virgule (1,2,3, par exemple).
Un type énuméré est remplacé par sa valeur, sous forme de chaîne.
Agent Builder vous permet de réutiliser un travail terminé de plusieurs façons :
Vous pouvez cloner un type de ressource existant que vous avez créé avec Agent Builder.
Vous pouvez modifier le code source généré par Agent Builder, puis recompiler le code pour créer un nouveau package.
Appliquez la procédure suivante pour cloner un type de ressource existant généré par Agent Builder.
Chargez un type de ressources existant dans Agent Builder, de l'une des manières suivantes :
Lancez Agent Builder à partir du répertoire de travail pour un type de ressource existant créé avec Agent Builder. Vérifiez que ce répertoire contient le fichier rtconfig. Agent Builder charge les valeurs du type de ressources sur les écrans Créer et Configurer.
Utilisez l'option de chargement du type de ressource du menu déroulant Fichier.
Modifiez le répertoire de travail dans l'écran Créer.
Vous devez utiliser l'option Parcourir pour sélectionner un répertoire. La saisie d'un nouveau nom de répertoire est insuffisante. Une fois le répertoire sélectionné, Agent Builder active de nouveau le bouton Créer.
Apportez les changements souhaités au type de ressource existant.
Vous pouvez avoir à modifier le type de code généré pour le type de ressource. Par exemple, si vous créez une version korn shell d'un type de ressource et si vous vous apercevez ensuite que vous avez besoin d'une version C, procédez comme suit :
Chargez le type de ressource existant en version korn shell.
Paramétrez le langage de sortie sur C.
Cliquez sur Créer pour que Agent Builder crée une version C du type de ressource.
Créez le clone du type de ressources.
Pour simplifier le processus de création d'un type de ressource, Agent Builder limite la quantité d'informations que vous pouvez spécifier, ce qui limite obligatoirement l'étendue du type de ressource généré. Par conséquent, pour ajouter des fonctionnalités plus sophistiquées, vous devez modifier le code source généré ou le fichier RTR. Exemple de fonctionnalité supplémentaire : le code qui permet d'ajouter des marques de validation pour les propriétés supplémentaires ou qui permet de régler les paramètres non affichés par Agent Builder.
Les fichiers source se trouvent dans le répertoire install-directory/rt-name/src. Agent Builder intègre les commentaires dans le code source pour que vous puissiez y ajouter le code. Exemple (pour un code C) :
/* User added code -- BEGIN vvvvvvvvvvvvvvv */ /* User added code -- END ^^^^^^^^^^^^^^^ */
Ces commentaires sont identiques dans le code source korn shell, si ce n'est que la marque de commentaire (#) indique le début d'un commentaire.
Par exemple, rt-name.h indique toutes les fonctions d'utilitaire utilisées par les différents programmes. Des commentaires sont placés à la fin de cette liste pour vous permettre d'indiquer les autres fonctions que vous pouvez avoir ajoutées à votre code.
Agent Builder génère également le fichier makefile dans le répertoire install-directory/rt-name/src avec les cibles appropriées. Utilisez la commande make pour recompiler le code source. Utilisez la commande make pkg pour regénérer le package du type de ressource.
Le fichier RTR se trouve dans le répertoire install-directory/rt-name/etc. Vous pouvez le modifier à l'aide d'un éditeur de texte standard. Pour plus d'informations sur le fichier RTR, voir Paramétrage des propriétés de ressources et de types de ressources. Pour en savoir plus sur les propriétés, voir Annexe A, Propriétés standard.
La version de ligne de commande de Agent Builder suit la même procédure de base que l'interface utilisateur graphique. Toutefois, au lieu de saisir des informations dans l'interface utilisateur graphique, vous pouvez transmettre les arguments aux commandes scdscreate et scdsconfig. Pour en savoir plus, reportez-vous aux pages de manuel scdscreate(1HA) et scdsconfig(1HA).
Procédez aux étapes suivantes pour utiliser la version de ligne de commande de 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 scdsconfig pour configurer le modèle de type de ressources créé avec scdscreate.
Vous pouvez indiquer des variables de propriété, Les variables de propriété sont décrites à la section Utilisation des variables de propriété.
Remplacez les répertoires par le sous-répertoire pkg dans le répertoire de travail.
Utilisez la commande pkgadd pour installer les packages créés avec scdscreate.
Dans un environnement à zones sous Solaris 10, entrez la commande suivante en tant qu'administrateur global dans la zone globale :
# pkgadd -G -d . package-name |
Le package que vous avez spécifié est ajouté à la zone globale, à condition que le contenu du package n'affecte aucune des parties de la zone globale partagées avec une zone non globale.
Pour toute autre version du système d'exploitation Solaris ou pour Solaris 10 dans un environnement sans zones, tapez la commande suivante :
# pkgadd -d . package-name |
(Facultatif) Modifiez le code source généré.
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 ressource cible. Le répertoire de travail est défini à partir de 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 ressource. Par exemple, si vous spécifiez le nom de fournisseur SUNW et créez un type de ressource appelé ftp, Agent Builder crée un répertoire nommé SUNWftp dans le répertoire de travail.
Dans ce sous-répertoire, Agent Builder crée et alimente les répertoires répertoriés dans le tableau suivant.
Nom du répertoire |
Contenu |
|
---|---|---|
bin |
Pour la sortie C, contient les fichiers binaires compilés à partir des fichiers source. Spécifique à une sortie korn shell. 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 (.), afin de constituer le nom du fichier RTR. Par exemple, si le nom du fournisseur est SUNW et celui du type de ressource, ftp, le nom du fichier RTR sera SUNW.ftp. |
|
man |
Contient les pages de manuel personnalisées pour les scripts d'utilitaire start, stop et remove, par exemple startftp(1M), stopftp(1M) et removeftp(1M).
Pour pouvoir afficher ces pages de manuel, indiquez-en le chemin à l'aide de l'option man -M. Exemple :
|
|
pkg |
Contient le dernier package Solaris qui inclut le service de données créé. |
|
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. Voir Scripts d'utilitaire et pages de manuel créées par Sun Agent Builder. Agent Builder ajoute le nom de l'application à chacun de ces noms de script, par exemple startftp, stopftp et removeftp. |
Le gestionnaire (RGM) gère les groupes de ressources et, en définitive, les ressources sur un cluster. Il utilise un modèle de rappel. Lorsque des événements spécifiques se produisent, tels qu'un échec de noeud, le RGM appelle les méthodes du type de chacune des ressources fonctionnant sur le noeud affecté. Par exemple, le RGM appelle la méthode Stop pour arrêter une ressource fonctionnant sur le noeud affecté et appelle la méthode Start de cette ressource pour la lancer sur un autre noeud. Pour en savoir plus sur ce modèle, reportez-vous aux pages de manuel Modèle du gestionnaire de groupes de ressources, Méthodes de rappel et rt_callbacks(1HA).
Pour prendre en charge ce modèle, Agent Builder génère huit programmes C exécutables ou scripts korn shell dans le répertoire install-directory/rt-name/bin. Ces programmes ou scripts de shell servent de méthodes de rappel.
Le programme rt-name_probe, qui implémente un détecteur de pannes, n'est pas un programme de rappel à proprement parler. Le RGM n'appelle pas directement rt-name_probe : il appelle rt-name_monitor_start et rt-name_monitor_stop. Ces méthodes démarrent et arrêtent le détecteur de pannes en appelant rt-name _probe.
Les huit méthodes générées par Agent Builder sont les suivantes :
rt-name_monitor_check
rt-name_monitor_start
rt-name_monitor_stop
rt-name_probe
rt-name_svc_start
rt-name_svc_stop
rt-name_update
rt-name_validate
Pour plus d'informations sur ces méthodes, reportez-vous à la page de manuel rt_callbacks(1HA).
Dans le répertoire install-directory/rt-name/src (sortie C), Agent Builder génère les fichiers suivants :
Un fichier d'en-tête (rt-name.h)
Un fichier source (rt-name.c) qui contient le code commun à toutes les méthodes
Un fichier d'objets (rt-name.o) pour le code commun
Des fichiers source (*.c) pour chacune des méfhodes
Des fichiers d'objets (*.o) pour chacune des méfhodes
Agent Builder lie le fichier rt-name.o à chacun des fichiers de méthode .o pour créer les fichiers exécutables dans le répertoire install-directory/rt-name/bin.
Pour la sortie de korn shell, les répertoires install-directory/rt-name/bin et install-directory/rt-name/src sont identiques. Chacun d'eux comporte huit scripts d'exécution correspondant aux sept méthodes de rappel et à la méthode Probe.
La sortie de korn shell comprend deux utilitaires compilés, gettime et gethostnames. Les méthodes de rappel particulières utilisent ces méthodes pour obtenir du temps et pour procéder à l'analyse.
Vous pouvez modifier le code source, exécuter la commande make pour recompiler le code et, lorsque vous avez terminé, 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 aux endroits où vous devez ajouter du code dans le code source. Voir Édition du code source généré.
Une fois que vous avez généré un type de ressource et installé son package sur un cluster, vous devez encore exécuter une instance (ressource) du type de ressource fonctionnant sur un cluster. Normalement, pour exécuter une instance, vous devez utiliser les commandes administratives ou SunPlex Manager. Toutefois, pour faciliter les choses, Agent Builder génère un script d'utilitaire personnalisé à cette fin, ainsi que des scripts permettant d'arrêter et de supprimer une ressource du type de ressource cible. Ces trois scripts, qui se trouvent dans le répertoire install-directory/rt-name/util, effectuent les opérations suivantes :
Script de démarrage : enregistre le type de ressources et crée les ressources et les groupes de ressources nécessaires. Ce script crée également la ressource d'adresse réseau (LogicalHostname ou SharedAddress ) qui permet à l'application de communiquer avec les clients sur le réseau.
Script d'arrêt : arrête la ressource.
Script de suppression : annule les actions du script de démarrage. Il permet d'arrêter les ressources, les groupes de ressources et le type de ressources cible et de les supprimer du système.
Vous ne pouvez utiliser que le script de suppression avec une ressource qui a été démarrée par le script de démarrage correspondant, 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 de l'application est ftp, les scripts sont appelés startftp, stopftp et removeftp.
Agent Builder fournit des pages de manuel dans le répertoire install-directory/rt-name/man/man1m pour chaque script d'utilitaire. Nous vous conseillons de les lire avant de démarrer ces scripts, car elles donnent des explications sur les arguments à transférer au script.
Pour pouvoir afficher ces pages, indiquez le chemin d'accès au répertoire man en utilisant l'option -M avec la commande man. Par exemple, si SUNW est le fournisseur et ftp, le nom de l'application, entrez la commande suivante pour afficher la page de manuel startftp(1M) :
% man -M install-directory/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 de manuel portant sur les scripts d'utilitaire sont placées dans le répertoire /opt/rt-name/man. Par exemple, entrez la commande suivante pour afficher la page de manuel startftp(1M) :
% man -M /opt/SUNWftp/man startftp |
Agent Builder place les fichiers de prise en charge, tels que pkginfo, postinstall, postremove et preremove, dans le répertoire install-directory/rt-name/etc. Ce répertoire contient également le fichier d'enregistrement du type de ressource (RTR). Le fichier RTR déclare les propriétés de ressource et de type de ressource qui sont disponibles pour le type de ressource cible et initialise les valeurs de propriété au moment où une ressource est enregistrée avec un cluster. Pour en savoir plus, voir Paramétrage des propriétés de ressources et de types de ressources. Le nom du fichier RTR suit le modèle vendor-name.resource-type-name, 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. En revanche, vous devez reconstruire le package à l'aide de la commande make pkg.
Le répertoire install-directory/rt-name/pkg contient un package Solaris. Le nom du package est une concaténation du nom du fournisseur et du nom de l'application, par exemple SUNWftp. Le fichier makefile qui se trouve dans le répertoire install-directory/rt-name/src prend en charge la création d'un nouveau package. Par exemple, si vous modifiez les fichiers source et recompilez le code, ou si vous modifiez les scripts d'utilitaire du package, utilisez la commande make pkg pour créer un nouveau package.
Lorsque vous supprimez un package d'un cluster, la commande pkgrm peut échouer si vous tentez de l'exécuter en même temps à partir de plusieurs noeuds. Vous pouvez pallier ce problème de l'une des deux façons suivantes :
Exécutez le script remove rt-name à partir d'un des noeuds du cluster avant d'exécuter la commande pkgrm à partir d'un autre noeud.
Exécutez la commande pkgrm à partir d'un des noeuds du cluster : cela permet d'effectuer toutes les opérations de nettoyage nécessaires. Exécutez ensuite la commande pkgrm à partir des autres noeuds, en même temps si nécessaire.
Si pkgrm échoue car vous tentez de l'exécuter en même temps à partir de plusieurs noeuds, exécutez la commande à nouveau à partir d'un seul noeud. Exécutez ensuite la commande à partir des autres noeuds.
Si vous générez du code source en shell C ou korn shell dans le répertoire de travail, Agent Builder génère un fichier de configuration appelé rtconfig. Ce fichier contient les informations que vous avez spécifiées sur les écrans Créer et Configurer. Si vous lancez Agent Builder à partir du répertoire de travail pour un type de ressource existant, Agent Builder lit le fichier rtconfig. Agent Builder se sert des informations que vous avez fournies pour le type de ressource existant pour compléter les écrans Créer et Configurer. Agent Builder fonctionne de la même manière si vous chargez un type de ressource existant en sélectionnant l'option correspondante du menu déroulant Fichier. Cette fonction est particulièrement utile lorsque vous souhaitez cloner un type de ressources existant. Voir Réutilisation du code créé avec Agent Builder .
Le module Cluster Agent pour Agent Builder est un module NetBeansTM. Ce module fournit une interface utilisateur graphique qui vous permet de créer des types de ressource pour le logiciel Sun Cluster en utilisant Sun Java Studio (anciennement Sun ONE Studio).
La documentation de Sun Java Studio explique comment installer, configurer et utiliser Sun Java Studio. Elle est disponible à l'adresse http://wwws.sun.com/software/sundev/jde/documentation/index.html.
Le module Cluster Agent s'installe en même temps que le logiciel Sun Cluster. L'outil d'installation de Sun Cluster place le fichier du module Cluster Agent scdsbuilder.jar dans /usr/cluster/lib/scdsbuilder. Pour utiliser le module Cluster Agent avec le logiciel Sun Java Studio, vous devez créer un lien symbolique vers ce fichier.
Les logiciels Sun Cluster, Sun Java Studio et Java 1.4 doivent être installés et accessibles sur le système sur lequel vous envisagez d'exécuter le module Cluster Agent.
Configurez un 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 avec un rôle é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 avez installé le logiciel Sun Java Studio dans un autre répertoire que /opt/s1studio/ee, remplacez ce chemin d'accès par le chemin que vous avez utilisé.
Pour être le seul à pouvoir accéder au module, créez le lien symbolique dans votre sous-répertoire modules.
% cd ~your-home-dir/ffjuser40ee/modules % ln -s /usr/cluster/lib/scdsbuilder/scdsbuilder.jar |
Fermez et relancez le logiciel Sun Java Studio.
La procédure suivante décrit comment démarrer le module Cluster Agent à partir du logiciel Sun Java Studio.
La documentation de Sun Java Studio explique comment installer, configurer et utiliser Sun Java Studio. Elle est disponible à l'adresse http://wwws.sun.com/software/sundev/jde/documentation/index.html.
À partir du menu Fichier de Sun Java Studio, sélectionnez Nouveau, ou dans la barre d'outils, cliquez sur l'icône illustrée ci-dessous :
L'écran Assistant Nouveau apparaît.
Faites défiler la liste (si nécessaire) dans la fenêtre de sélection du modèle, puis cliquez sur la clé en regard du dossier Autre.
Le dossier Autre s'ouvre.
Dans le dossier Autre, sélectionnez Sun Cluster Agent Builder, puis cliquez sur Suivant.
Le module Cluster Agent pour Sun Java 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.
Il existe des différences mineures entre le module Cluster Agent et Agent Builder :
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 ressource est immédiatement créé lorsque vous cliquez sur l'option Créer de l'écran correspondant. De plus, le type de ressource est immédiatement configuré lorsque vous cliquez sur l'option Configurer de l'écran correspondant.
Les données figurant dans la zone Journal de sortie de Agent Builder s'affichent dans une fenêtre séparée de Sun Java Studio.