Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Verwenden von Agent Builder

In diesem Abschnitt wird die Verwendung von Agent Builder beschrieben. Außerdem enthält dieser Abschnitt Aufgaben, die Sie vor der Verwendung von Agent Builder durchführen müssen. Der Abschnitt erläutert auch, auf welche Arten Agent Builder nach dem Generieren des Ressourcentypcodes eingesetzt werden kann.

Folgende Themen werden behandelt:

Analysieren der Anwendung

Vor der Verwendung von Agent Builder müssen Sie bestimmen, ob die Anwendung, die Sie hoch verfügbar oder skalierbar machen möchten, den erforderlichen Kriterien entspricht. Agent Builder kann diese Analyse nicht ausführen, die lediglich auf den Laufzeiteigenschaften der Anwendung basiert. Analysieren der Eignung einer Anwendung bietet weitere Informationen zu diesem Thema.

Agent Builder kann eventuell nicht immer einen vollständigen Ressourcentyp für Ihre Anwendung erstellen. In den meisten Fällen bietet Agent Builder jedoch zumindest eine Teillösung. Für ausgereiftere Anwendungen ist zum Beispiel zusätzlicher Code erforderlich, der von Agent Builder nicht standardmäßig generiert wird. Beispiele für zusätzlichen Code ist Code, der Validierungsprüfungen für zusätzliche Eigenschaften hinzufügt oder der Parameter optimiert, die Agent Builder nicht offen legt. In diesen Fällen müssen Sie Änderungen an dem generierten Quellcode oder an der RTR-Datei vornehmen. Agent Builder wird so entwickelt, dass genau diese Art der Flexibilität vorhanden ist.

Agent Builder setzt an bestimmten Stellen im generierten Quellcode Kommentare, an denen Sie Ihren eigenen Ressourcentypcode hinzufügen können. Nachdem Sie den Quellcode geändert haben, können Sie das von Agent Builder generierte Makefile verwenden, um den Quellcode neu zu kompilieren und das Ressourcentyppaket neu zu generieren.

Selbst wenn Sie den gesamten Ressourcentypcode selbst schreiben und keinen von Agent Builder generierten Code verwenden, können Sie das von Agent Builder bereitgestellte Makefile und die Struktur zum Erstellen eines Solaris-Pakets für Ihren Ressourcentyp nutzen.

Installieren und Konfigurieren von Agent Builder

Agent Builder muss nicht eigens installiert werden. Agent Builder ist im SUNWscdev-Paket enthalten, das standardmäßig bei der Installation der Sun Cluster-Software installiert wird. Das Sun Cluster Handbuch Softwareinstallation für Solaris OS enthält weitere Informationen.

Prüfen Sie vor der Verwendung von Agent Builder die folgenden Voraussetzungen:


Hinweis –

Sie können mit Agent Builder einen anderen Compiler als den cc-Standardcompiler verwenden. Um einen anderen Compiler zu verwenden, erstellen Sie eine symbolische Verknüpfung in $PATH von cc auf einen anderen Compiler, z.B. gcc. Es kann auch die Compiler-Spezifikation im Makefile (aktuell CC=cc) in den vollständigen Pfad für einen anderen Compiler geändert werden. Ändern Sie zum Beispiel im von Agent Builder generierten Makefile den Eintrag CC=cc in CC=Pfadname/gcc. In diesem Fall können Sie Agent Builder nicht direkt ausführen. Stattdessen müssen Sie die make- und make pkg-Befehle zum Generieren des Datendienstcodes und des Pakets verwenden.


Bildschirme in Agent Builder

Agent Builder ist ein Assistent, der zwei Arbeitsschritte mit jeweils einem Bildschirm umfasst. Agent Builder verfügt über zwei Bildschirme, die Sie durch die Erstellung eines neuen Ressourcentyps führen:

  1. Bildschirm "Create". In diesem Bildschirm geben Sie grundlegende Informationen über den zu erstellenden Ressourcentyp, z.B. seinen Namen und das Arbeitsverzeichnis für die generierten Dateien an. Im Arbeitsverzeichnis wird die Ressourcentypvorlage erstellt und konfiguriert. Außerdem geben Sie die folgenden Informationen an:

    • Die Art der zu erstellenden Ressource (skalierbar oder Failover)

    • Ob die Basisanwendung netzwerkbasiert ist (d.h., ob sie das Netzwerk für die Kommunikation mit deren Clients verwendet)

    • Den zu generierenden Code (C, Korn Shell (ksh) oder GDS)

    Weitere Informationen über GDS finden Sie in Kapitel 10, Generische Datendienste. In diesem Bildschirm müssen Sie alle Informationen angeben und "Create" auswählen, um die entsprechende Ausgabe zu generieren. Anschließend können Sie den Bildschirm "Configure" anzeigen.

  2. Bildschirm "Configure". In diesem Bildschirm müssen Sie die vollständige Befehlszeile angeben, die an eine UNIX-Shell übergeben werden kann, um die Basisanwendung zu starten. Optional können Sie auch Befehle zum Stoppen und Testen der Anwendung angeben. Wenn Sie diese beiden Befehle nicht angeben, verwendet die generierte Ausgabe Signale zum Stoppen der Anwendung und bietet einen Standardtestsignalmechanismus. Eine Beschreibung des Testsignalbefehls finden Sie unter Verwenden des Bildschirms "Configure". Im Bildschirm "Configure" können Sie auch die Zeitüberschreitungswerte für diese drei Befehle ändern: start, stop, probe.

Starten von Agent Builder


Hinweis –

Wenn die GUI-Version von Agent Builder nicht aufgerufen werden kann, können Sie Agent Builder über eine Befehlszeilenschnittstelle aufrufen. Weitere Informationen finden Sie unter So verwenden Sie die Befehlszeilenversion von Agent Builder .


Wenn Sie Agent Builder im Arbeitsverzeichnis für einen bereits vorhandenen Ressourcentyp starten, initialisiert Agent Builder die Bildschirme "Create" und "Configure" für die Werte des bereits vorhandenen Ressourcentyps.

Starten Sie Agent Builder, indem Sie folgenden Befehl eingeben:


% /usr/cluster/bin/scdsbuilder

Der Bildschirm "Create" wird angezeigt.

Abbildung 9–1 Bildschirm "Create" für Agent Builder

Dialogfeld mit dem Titel "SunPlex Agent Builder", das den Hauptbildschirm von Agent Builder anzeigt

Navigieren in Agent Builder

Sie geben in den Bildschirmen "Create" und "Configure" Informationen ein, indem Sie die folgenden Operationen durchführen:

Mit den Schaltflächen unten auf jedem Bildschirm können Sie die Aufgabe beenden, zum nächsten bzw. vorherigen Bildschirm gehen oder Agent Builder beenden. Agent Builder markiert diese Felder nach Bedarf oder blendet sie aus.

Wenn Sie zum Beispiel die Felder ausgefüllt und die gewünschten Optionen auf dem Bildschirm "Create" aktiviert haben, klicken Sie unten im Bildschirm auf "Create". Die Schaltflächen "Previous" und "Next" sind abgeblendet dargestellt, da kein vorheriger Bildschirm vorhanden ist und Sie nicht zum nächsten Schritt weitergehen können, bevor dieser Schritt beendet ist.

Unterer Fensterbereich, in dem die Befehle "Create", "Previous", "Next" und "Cancel" zu sehen sind

Agent Builder zeigt Fortschrittsmeldungen im Bereich "Output Log" unten im Bildschirm an. Sobald Agent Builder beendet wurde, wird eine Erfolgsmeldung oder eine Warnmeldung angezeigt. Die Option "Next" ist hervorgehoben. Falls es sich um den letzten Bildschirm handelt, ist jedoch nur "Cancel" hervorgehoben.

Sie können jederzeit auf "Cancel" klicken, um Agent Builder zu beenden.

Der Befehl "Browse"

In einige Agent Builder-Felder können Sie Informationen eingeben. In anderen Feldern können Sie auf "Browse" klicken, um eine Verzeichnisstruktur zu durchsuchen und eine Datei oder ein Verzeichnis auszuwählen.

Der Befehl "Browse"

Wenn Sie auf "Browse" klicken, wird ein Bildschirm ähnlich der folgenden Abbildung angezeigt.

Bildschirm "Browse" mit einer Dateiliste

Doppelklicken Sie auf einen Ordner, um ihn zu öffnen. Wenn Sie den Cursor auf eine Datei bewegen, wird der Name der Datei im Feld "File Name" angezeigt. Klicken Sie auf "Select", wenn Sie die gewünschte Datei gefunden haben und mit dem Cursor darauf zeigen.


Hinweis –

Wenn Sie nach einem Verzeichnis suchen, zeigen Sie mit dem Cursor auf das gewünschte Verzeichnis und klicken Sie dann auf "Open". Wenn keine Unterverzeichnisse vorhanden sind, schließt Agent Builder das Suchfenster und setzt den Namen des markierten Verzeichnisses in das entsprechende Feld. Wenn das Verzeichnis Unterverzeichnisse hat, klicken Sie auf "Close", um das Suchfenster zu schließen und zum vorherigen Bildschirm zurückzukehren. Agent Builder setzt den Namen des markierten Verzeichnisses in das entsprechende Feld.


Die Symbole in der oberen rechten Ecke des Bildschirms "Browse" übernehmen folgende Aufgaben:

Symbol 

Aufgabe 

Symbol mit Pfeil nach oben

Dieses Symbol führt Sie in der Verzeichnisstruktur eine Ebene nach oben. 

Home-Symbol

Dieses Symbol führt Sie zum Home-Ordner zurück. 

Symbol Neuer Ordner

Dieses Symbol erstellt einen neuen Ordner unter dem aktuell ausgewählten Ordner. 

Symbol zum Wechseln der Ansicht

Dieses Symbol, das zum Umschalten zwischen verschiedenen Ansichten dient, wird für spätere Verwendung vorbehalten.  

Agent Builder-Menüs

Agent Builder enthält die Dropdown-Menüs "File" und "Edit".

Agent Builder-Menü "File"

Das Menü "File" enthält zwei Optionen:

Agent Builder-Menü "Edit"

Das Menü "Edit" enthält die folgenden zwei Optionen:

Verwenden des Bildschirms "Create"

Als ersten Schritt für die Erstellung eines Ressourcentyps muss der Bildschirm "Create" ausgefüllt werden. Dieser Bildschirm wird beim Starten von Agent Builder angezeigt. In der folgenden Abbildung ist der Bildschirm "Create" nach Eingabe von Informationen in den Feldern dargestellt.

Abbildung 9–2 Create-Bildschirm von Agent Builder, nach Eingabe von Informationen

Dialogfeld, das den Bildschirm "Create" nach Eingabe von Informationen anzeigt

Der Bildschirm "Create" enthält die folgenden Felder, Optionsfelder und Kontrollkästchen:


Hinweis –

Wenn der cc-Compiler nicht in der $PATH-Variable angegeben ist, blendet Agent Builder die C-Optionsschaltfläche aus und ermöglicht Ihnen die Auswahl des ksh-Optionsfeldes. Um einen anderen Compiler anzugeben, lesen Sie den Hinweis am Ende von Installieren und Konfigurieren von Agent Builder.


Klicken Sie nach Angabe der erforderlichen Informationen auf "Create". Das Ausgabeprotokoll unten im Bildschirm zeigt an, welche Aktionen Agent Builder ausführt. Sie können im Menü "Edit" den Befehl "Save Output Log" verwenden, um die Informationen im Ausgabeprotokoll zu speichern.

Nach Abschluss des Vorgangs zeigt Agent Builder entweder eine Erfolgsmeldung oder eine Warnmeldung an.


Hinweis –

Obwohl sich der Prozess zum Generieren eines vollständigen Ressourcentyps aus zwei Schritten zusammensetzt, können Sie Agent Builder nach Beenden des ersten Schritts ("Create)" verlassen, ohne die eingegebenen Informationen oder die von Agent Builder geleistete Arbeit zu verlieren. Weitere Informationen finden Sie unter Erneute Verwendung von mit Agent Builder erstelltem Code .


Verwenden des Bildschirms "Configure"

Der Bildschirm "Configure", in der folgenden Abbildung dargestellt, wird angezeigt, nachdem Agent Builder die Erstellung des Ressourcentyps beendet hat und Sie im Bildschirm "Create" auf "Next" klicken. Auf den Bildschirm "Configure" kann erst dann zugegriffen werden, wenn der Ressourcentyp erstellt worden ist.

Abbildung 9–3 Bildschirm "Configure" für Agent Builder

Dialogfeld, das den Bildschirm "Configure" zeigt

Der Bildschirm "Configure" enthält folgende Felder:

Verwenden der Korn Shell-basierten $hostnames-Variable von Agent Builder

Für viele Anwendungen, insbesondere netzwerkbasierte Anwendungen, muss der Hostname, an dem die Anwendung Kundenanforderungen abhört und bedient, an die Anwendung in der Befehlszeile übergeben werden. Daher ist der Hostname in vielen Fällen ein Argument, das für Start-, Stopp- und Testsignal-Befehle für den Zielressourcentyp angegeben werden muss (im Bildschirm "Configure"). Der Name des Hosts, auf dem eine Anwendung Anforderungen empfängt, ist jedoch Cluster-spezifisch. Der Hostname wird ermittelt, wenn die Ressource auf einem Cluster ausgeführt wird. Der Hostname kann nicht ermittelt werden, wenn Agent Builder den Ressourcentypcode generiert.

Um dieses Problem zu lösen, bietet Agent Builder die $hostnames-Variable, die Sie in der Befehlszeile für die Start-, Stopp- und Testsignal-Befehle angeben können.


Hinweis –

Die $hostnames-Variable wird ausschließlich für die Verwendung mit Korn-Shell-basierten Diensten unterstützt. Für die Verwendung mit C- und GDS-basierten Diensten wird die $hostnames-Variable nicht unterstützt.


Sie geben die $hostnames-Variable genau so an, wie Sie dies mit einem tatsächlichen Hostnamen tun würden, zum Beispiel:


% /opt/network_aware/echo_server -p Port-Nummer -l $hostnames

Wenn eine Ressource des Zielressourcentyps auf einem Cluster ausgeführt wird, wird der LogicalHostname- oder SharedAddress-Hostname, der für diese Ressource konfiguriert wird, durch den Wert der $hostnames-Variable ersetzt. Der Hostname wird für diese Ressource in der Ressourceneigenschaft Network_resources_used der Ressource konfiguriert.

Wenn Sie die Eigenschaft Network_resources_used mit mehreren Hostnamen konfigurieren, enthält die $hostnames-Variable alle Hostnamen, jeweils getrennt durch ein Komma.

Verwenden von Eigenschaftsvariablen

Sie können mithilfe von Eigenschaftsvariablen auch die Werte der ausgewählten Sun Cluster-Ressourcentyp-, Ressourcen- und Ressourcengruppeneigenschaften vom RGM-Framework abrufen. Agent Builder durchsucht Ihre Start-, Testsignal- oder Stopp-Befehlszeichenketten nach den Eigenschaftsvariablen und ersetzt diese Variablen durch ihre Werte, bevor Agent Builder den Befehl ausführt.


Hinweis –

Eigenschaftsvariablen werden nicht für die Verwendung mit Korn-Shell-basierten Diensten unterstützt.


Liste der Eigenschaftsvariablen

Dieser Abschnitt enthält eine Liste der Eigenschaftsvariablen, die Sie verwenden können. Die Sun Cluster-Ressourcentyp-, Ressourcen- und Ressourcengruppeneigenschaften werden in Anhang A, Standardeigenschaften beschrieben.

Ressourceneigenschaftsvariablen

Ressourcentypeigenschaftsvariablen

Ressourcengruppeneigenschaftsvariablen

Syntax der Eigenschaftsvariablen

Vor einem Eigenschaftsnamen fügen Sie ein Prozentzeichen (%) ein, um eine Eigenschaftsvariable, wie in diesem Beispiel dargestellt, auszuweisen:

/opt/network_aware/echo_server -t %RS_STOP_TIMEOUT -n %RG_NODELIST

Unter Berücksichtigung des zuvor dargestellten Beispiels kann Agent Builder diese Eigenschaftsvariablen eventuell interpretieren und das echo_server-Skript mit den folgenden Werten starten:

/opt/network_aware/echo_server -t 300 -n phys-node-1,phys-node-2,phys-node-3

So ersetzt Agent Builder Eigenschaftsvariablen

Agent Builder interpretiert die Typen von Eigenschaftsvariablen wie folgt:

Erneute Verwendung von mit Agent Builder erstelltem Code

Agent Builder bietet mehrere Möglichkeiten zur weiteren Nutzung bereits fertig gestellter Arbeiten:

ProcedureSo klonen Sie einen bestehenden Ressourcentyp

Befolgen Sie dieses Verfahren, um einen bereits vorhandenen, von Agent Builder generierten Ressourcentyp zu klonen.

Schritte
  1. Laden Sie einen bestehenden Ressourcentyp mithilfe einer der folgenden Methoden in Agent Builder:

    • Starten Sie Agent Builder für einen bereits vorhandenen Ressourcentyp im Arbeitsverzeichnis, das Sie mit Agent Builder erstellt haben. Stellen Sie sicher, dass das Arbeitsverzeichnis die Datei rtconfig enthält. Agent Builder lädt die Werte für diesen Ressourcentyp in die Bildschirme "Create" und "Configure".

    • Verwenden Sie die Option "Load Resource" im Dropdown-Menü "File".

  2. Ändern Sie das Arbeitsverzeichnis im Bildschirm "Create".

    Wählen Sie mithilfe von "Browse" ein Verzeichnis aus. Die Eingabe eines neuen Verzeichnisnamens ist nicht ausreichend. Nachdem Sie ein Verzeichnis ausgewählt haben, aktiviert Agent Builder wieder die Schaltfläche "Create".

  3. Nehmen Sie am bereits vorhandenen Ressourcentyp die gewünschten Änderungen vor.

    Unter Umständen möchten Sie den Codetyp ändern, der für den Ressourcentyp generiert wird. Wenn Sie zum Beispiel zunächst eine Korn-Shell-Version eines Ressourcentyps erstellen, jedoch im Laufe der Zeit eine C-Version benötigen, können Sie wie folgt vorgehen:

    • Laden Sie den bereits vorhandenen Korn-Shell-Ressourcentyp.

    • Ändern Sie die Sprache für die Ausgabe zu C.

    • Klicken Sie auf "Create", damit Agent Builder eine C-Version des Ressourcentyps erstellt.

  4. Erstellen Sie den geklonten Ressourcentyp.

    1. Klicken Sie auf "Create", um den Ressourcentyp zu erstellen.

    2. Klicken Sie auf "Next", um den Bildschirm "Configure" anzuzeigen.

    3. Klicken Sie zur Konfiguration des Ressourcentyps auf "Configure" und dann zur Fertigstellung auf "Cancel".

Bearbeiten des generierten Quellcodes

Um den Prozess des Erstellens eines Ressourcentyps zu vereinfachen, beschränkt Agent Builder die Informationsmenge, die Sie angeben können, was notwendigerweise den Umfang des generierten Ressourcentyps beschränkt. Um also weitere ausgereifte Funktionen hinzuzufügen, müssen Sie den generierten Quellcode bzw. die RTR-Datei ändern. Beispiele für zusätzliche Funktionen ist Code, der Validierungsprüfungen für zusätzliche Eigenschaften hinzufügt oder Parameter optimiert, die Agent Builder nicht offen legt.

Die Quelldateien befinden sich im Verzeichnis Installationsverzeichnis/RT-Name/src. Agent Builder bettet Kommentare in den Quellcode ein, in den Sie Code hinzufügen können. Diese Kommentare haben für C-Code folgende Form:

/* User added code -- BEGIN vvvvvvvvvvvvvvv */
/* User added code -- END   ^^^^^^^^^^^^^^^ */

Hinweis –

Diese Kommentare sind im Korn-Shell-Quellcode identisch, außer dass das Kommentarzeichen (#) den Anfang eines Kommentars angibt.


So deklariert zum Beispiel RT-Name.h alle Dienstprogrammfunktionen, die von den verschiedenen Programmen verwendet werden. Am Ende der Deklarationenliste befinden sich Kommentare, mit denen Sie weitere Funktionen deklarieren können, die Sie einem der Codes hinzugefügt haben können.

Agent Builder generiert auch das Makefile im Verzeichnis Installationsverzeichnis/RT-Name/src mit entsprechenden Zielen. Verwenden Sie den Befehl make, um den Quellcode neu zu kompilieren. Verwenden Sie den Befehl make pkg, um das Ressourcentyppaket neu zu generieren.

Die RTR-Datei befindet sich im Verzeichnis Installationsverzeichnis/RT-Name/etc. Sie können die RTR-Datei mit einem Standardtexteditor bearbeiten. Weitere Informationen über die RTR-Datei finden Sie unter Einstellen der Ressourcen- und Ressourcentypeigenschaften. Weitere Informationen über Eigenschaften finden Sie in Anhang A, Standardeigenschaften.

ProcedureSo verwenden Sie die Befehlszeilenversion von Agent Builder

Die Befehlszeilenversion von Agent Builder folgt demselben grundlegenden Prozess wie die GUI. Anstatt jedoch Informationen in der GUI anzugeben, übergeben Sie Argumente an die Befehle scdscreate und scdsconfig. Weitere Informationen finden Sie in der Online-Dokumentation unter scdscreate(1HA) und scdsconfig(1HA).

Befolgen Sie diese Schritte, um die Befehlszeilenversion von Agent Builder zu verwenden.

Schritte
  1. Erstellen Sie mit dem Befehl scdscreate eine Sun Cluster-Ressourcentypvorlage, um eine Anwendung mit hoher Verfügbarkeit oder Skalierbarkeit auszustatten.

  2. Verwenden Sie scdsconfig, um die mit scdscreate erstellte Ressourcentypvorlage zu konfigurieren.

    Sie können auch Eigenschaftsvariablen festlegen. Die Eigenschaftsvariablen werden im Abschnitt Verwenden von Eigenschaftsvariablen beschrieben.

  3. Ändern Sie die Verzeichnisse in das pkg-Unterverzeichnis im Arbeitsverzeichnis.

  4. Verwenden Sie den Befehl pkgadd zur Installation der mit scdscreate erstellten Pakete.

    • Geben Sie für Solaris 10 OS in einer Zonenumgebung als globaler Administrator in der globalen Zone den folgenden Befehl ein:


      # pkgadd -G -d . Paketname
      

      Das von Ihnen angegebene Paket wird zur globalen Zone hinzugefügt, vorausgesetzt, der Inhalt des Pakets wirkt sich nicht auf einen Bereich der globalen Zone aus, die mit einer nicht-globalen Zone gemeinsam genutzt wird.

    • Für jede andere Version von Solaris OS oder Solaris 10 OS in einer Umgebung ohne Zonen geben Sie folgenden Befehl ein:


      # pkgadd -d . Paketname
      
  5. (Optional) Bearbeiten Sie den generierten Quellcode.

  6. Führen Sie das Start-Skript aus.