Vorheriges Thema: Namenskonventionen für EntitätenNächstes Thema: Referenzhandbuch zur Benutzeroberfläche


CLI-Befehle zur Skripterstellung

Alle Befehle, die von der CA AppLogic®-Shell ausgeführt werden können, können auch von einem Remote-Client über ssh ausgeführt werden.

In allen Syntaxbeispielen ist controllerhost der Hostname der CA AppLogic®-Steuerung, auf die zugegriffen wird. Es wird davon ausgegangen, dass der Client einen SSH-Agent so eingerichtet hat, dass dieser die notwendigen Identitätsschlüssel für Zugriffsautorisierung angibt oder dass dem SSH-Hilfsprogramm anderweitig ein gültiger Zugriffsschlüssel bereitgestellt wird (zum Beispiel über eine Befehlszeilenoption oder eine Konfigurationsdatei). Unabhängig von der Methode, die für die Bereitstellung der Zugriffsoptionen verwendet wird, kann der Client nur einen privaten SSH2-Schlüssel verwenden (RSA oder DSA), und er muss den Zugriff auf die Steuerung als 'root' anfordern. Der entsprechende öffentliche Schlüssel muss über die Webschnittstelle oder von einem anderen Benutzer auf der Steuerung installiert worden sein, sodass die Shell Zugriff auf die Steuerung hat.

Wenn Sie GNU Bash als Shell verwenden, ist eine Menge von Shellfunktionen verfügbar, mit denen Sie bequem – interaktiv oder über Skripte – auf die CLI-Befehle Ihrer Shell zugreifen können. Siehe auch Clientseitige Makros.

ssh root@controllerhost entity command [args]

Einen einzelnen 3t-Shell-Befehl (command) auf der Steuerung ausführen

ssh root@controllerhost command entity [args]

das gleiche wie oben, wobei hier Befehl und Entitätsname vertauscht sind. Beide Syntaxvarianten werden von der 3t-Shell akzeptiert

Hinweise:

Skriptspezifische CLI-Befehle

Es folgen einige Remote-Befehle, die für erweiterte Skripte und für die Implementierung von interaktiven Shell-Schnittstellen mit clientseitigem Code gedacht sind. Ein Beispiel für eine solche Schnittstelle, implementiert für die GNU-Bash-Shell, finden Sie in Clientseitige Makros.

Appliance-Shell-Zugriff
ssh [-t] controllerhost sh [args] 

Dieser Befehl hat die gleiche Funktion wie der ssh-Befehl in der CLI-Schnittstelle, ist aber nur für eine direkte Ausführung, wie oben angezeigt, vorgesehen, und es ist nicht möglich, über die interaktive Eingabeaufforderung der CA AppLogic®-Shell darauf zuzugreifen. Er ermöglicht ein automatisches Setup eines Pseudoterminals auf der Ziel-Appliance und somit eine transparente Verwendung von interaktiven Befehlen, die ein tty benötigen (zum Beispiel der 'vi'-Editor).

Aufrufen von Befehlen mit der "aktuellen Anwendung"
ssh controllerhost =appname command [args] 

Dies ist eine Variante der oben beschriebenen normalen, nicht-interaktiven Befehlsausführung, die eine "aktuelle Anwendung" für den CA AppLogic®-CLI-Befehl angibt. Sie ist gleichwertig zur Ausführung der folgenden zwei Befehle in der interaktiven Shell:

ca appname 
command [args] 

Obwohl jeder individuelle CLI-Befehl, der die "aktuelle Anwendung" unterstützt, auch die Angabe eines expliziten Anwendungsnamen ermöglicht, ist diese alternative Möglichkeit zur Angabe eines Anwendungsnamens nützlich für Client-Skripte, die ihre eigene Vorstellung von einer "aktuellen Anwendung" haben und auch eine übliche Funktion zum Aufrufen der Remote-Befehle in CA AppLogic® verwenden. Auf diese Weise muss die Funktion, die den Remote-Befehl tatsächlich aufruft, die Befehlssyntax nicht kennen und auch nicht wissen, ob der spezifische Befehl überhaupt eine Anwendung als Argument hat - sie setzt einfach den Namen der aktuellen Anwendung als erstes Wort im Befehl ein und veranlasst die Remote-Shell in CA AppLogic®, ihre eigenen Regeln für die Verwendung der "aktuellen Anwendung" anzuwenden.

Hier ist ein einfaches Beispiel (GNU Bash), in dem eine Funktion mit dem Namen '3t' definiert wird, die für das Aufrufen von Remote-Befehlen verwendet werden soll:

function 3t() { ssh $CONTROLLER =$APP "$@" ; } 

Mit dieser Funktion muss einfach der Steuerungs-Host und die aktuelle Anwendung festgelegt werden. Danach kann damit begonnen werden, Remote-Befehle aus der lokalen Shell mit dem Präfix "3t" zu verwenden:

CONTROLLER=ctl.3tera.net 
APP=TWiki 
3t grid info 
3t app list  # in this command, the current app name doesn't matter 
3t app start # here, the current application name will actually be used