Vorheriges Thema: Globale Benutzer und Gruppen

Nächstes Thema: Sperren von Anwendungen und Appliances

Erweiterte Verwendung

Für diejenigen, die GNU bash verwenden: Clientseitige Makros - eine alternative Möglichkeit, auf die CA 3Tera AppLogic-Shell direkt von Ihrer lokalen Eingabeaufforderung aus zuzugreifen.

Clientseitige Makros

Clientseitige Makros für GNU Bash und OpenSSH-Client vereinfachen den Zugriff auf alle Funktionen von 3tshell – die CA 3Tera AppLogic-Befehlszeilenschnittstelle – direkt von Ihrer lokalen Eingabeaufforderung aus.

Hier herunterladen:

Zur Verwendung auf ihrem System benötigen Sie lediglich GNU Bash 2.0 oder höher und das OpenSSH-Clientprogramm (ssh), Version 3.9 oder höher. Laden Sie die angehängte Shell-Datei herunter, speichern Sie sie auf Ihrer Festplatte, und integrieren Sie sie in Ihre Shell mithilfe des source-Befehls (oder .) - dies kann in der Datei ".bashrc" erfolgen, sodass sie für jede von Ihnen gestartete interaktive Shell-Instanz verfügbar ist.

Sobald die rmacros.sh-Datei geladen ist, sind die folgenden Befehle in der Shell-Eingabeaufforderung verfügbar. Die gleichen Befehle können auch in einem nicht-interaktiven Skript verwendet werden, indem einfach die Datei "rmacros.sh" in Ihrem Skript mit dem source-Befehl eingebunden wird:

controller hostname-oder-ip

Hostnamen der Steuerung festlegen, an die nachfolgende Befehle geleitet werden. Dies muss erfolgen, bevor weitere Befehle verwendet werden.

controller -

Von der Steuerung trennen. Dies schließt die ssh-Mastersitzung mit der Steuerung.

3t <beliebiger 3tshell-Befehl>

Dies ist äquivalent zur Eingabe des Befehls in der Shell-Eingabeaufforderung in CA 3Tera AppLogic. Diese Form ist nützlich für einfache Befehle sowie für Batchoperationen ohne Benutzereingriff. Verwenden Sie "3t -t" für Befehle, die einen Benutzereingriff benötigen (zum Beispiel "vol manage").

3t -t <beliebiger 3tshell-Befehl>

Funktioniert wie '3t <beliebiger 3tshell-Befehl>', ermöglicht aber den Dialogbetrieb, da die CA 3Tera AppLogic-Shell mit aktiviertem ssh-Pseudoterminal ausgeführt wird.

3t

Die interaktive CA 3Tera AppLogic-Shell aufrufen.

ca appname

Die aktuelle Anwendung festlegen. Dies funktioniert auf die gleiche Weise wie der Befehl "ca" in der interaktiven Shell. Die Ausführung von "3t ca myapp" funktioniert nicht, da bei jedem Aufruf des Befehls "3t" eine neue Instanz der CA 3Tera AppLogic-Shell gestartet wird.

pwa

Den Namen der aktuellen Anwendung (wie durch ca festgelegt) drucken

assh [appname:]component

Eine interaktive Shell für eine laufende Appliance-Instanz in der aktuellen Anwendung oder in der angegebenen Anwendung öffnen. 'component' ist der vollständige Name der Instanz in der Anwendungshierarchie. Der Name der Assembly auf der obersten Ebene (main.) kann ausgelassen werden; beispielsweise sind folgende Befehle äquivalent:

assh the-app:main.web.srv1 
ca the-app ; assh web.srv1 
assh [app:]component cmd [args]

Einen nicht-interaktiven Befehl auf einer Appliance-Instanz ausführen. HINWEIS: auf älteren Versionen (1.x) von CA 3Tera AppLogic dürfen der Befehlsname und die Argumente keine Leerzeichen enthalten, das heißt, Folgendes wird nicht erwartungsgemäß funktionieren:

assh web.srv1 cat "the file with spaces in its name". 

Wenn Sie einen solchen Befehl auf einem älteren Grid ausführen müssen, erstellen Sie ein kurzes Skript, kopieren Sie dieses mithilfe des weiter unten dargestellten Befehls "ascp" auf die laufende Appliance, und starten Sie dann dieses Skript.

ascp src dest

Eine Datei auf eine/von einer laufenden Appliance kopieren. Der Parameter 'src' oder der Parameter 'dest' muss der Name einer lokalen Datei oder eines lokalen Verzeichnisses sein. Der andere Parameter gibt die entfernte Appliance und den Dateinamen in einer dem Befehl "scp" ähnlichen Form an:

comp.name:filename 

Der Komponentenname (comp.name) ist der vollständige Pfad der Komponente in der Anwendungs-Assembly (wie bei assh kann das Präfix main. ausgelassen werden). Für diesen Befehl muss die aktuelle Anwendung mit dem ca-Befehl festgelegt werden.

als

Verknüpfung. wie "3t app list".

astart

Verknüpfung. wie "3t app start `pwa`".

astop

Verknüpfung. wie "3t app stop `pwa`".

vmnt

Wird in CA 3Tera AppLogic 2.3 und höher nicht unterstützt. Verwenden Sie stattdessen die die neue Operation "vol manage".

vumnt

Wird in CA 3Tera AppLogic 2.3 und höher nicht unterstützt.

Konfigurieren benutzerspezifischer SSH-Optionen

Anders als bei der normalen Art und Weise der Festlegung von SSH-Optionen (bei der diese in Ihrer Datei "~/.ssh/config" abgelegt werden), akzeptieren die von rmacros.sh bereitgestellten Befehle eine Umgebungsvariableneinstellung mit Optionen, die sich nur auf die von den Makros generierten ssh-Ausführungen auswirken, nicht aber auf andere ssh-Befehle. Dies ist nützlich, wenn Sie ein anderes Setup für die Arbeit mit CA 3Tera AppLogic-Grid(s) und für andere ssh-Sitzungen benötigen und die von der Datei ".ssh/config" unterstützte hostbasierte Methode nicht geeignet ist, um die unterschiedlichen Optionen zu trennen. Dies schließt den Fall ein, wenn Sie auch "Verwalter"-Zugriff auf das CA 3Tera AppLogic-Grid haben (wenn Sie z. B. dieses Grid installiert haben) - in solch einem Fall haben Sie einen SSH-Schlüssel, der einen Root-Zugriff auf die Steuerung ermöglicht - nicht das, was Sie für einen "normalen" Client-Zugriff benötigen.

Um zusätzliche Optionen für die Remote-Zugriffs-Makros in rmacros.sh anzugeben, legen Sie die Variable AL_SSH_OPT fest. Sie sollte Optionen in der von ssh und all seinen Begleitprogrammen (scp, sftp usw.) akzeptierten Form enthalten: -o OptionName=option-value. Benutzen Sie keine Kurzoptionen wie -i, -t usw. - diese funktionieren bei ssh, aber nicht bei scp.

Beispiel:
export AL_SSH_OPT='-o IdentityFile=/home/lk/t-key -o IdentitiesOnly=yes -o StrictHostKeyChecking=no' 

Dies teilt SSH mit: Verwende den Schlüssel "/home/lk/t-key" für die Authentifizierung mit öffentlichem Schlüssel; verwende keinen der von ssh-agent bereitgestellten Schlüssel; deaktiviere strikte Hostidentitäts-Überprüfung (verwenden Sie die letzte Option nur, wenn Sie häufig Grids völlig neu installieren, was dazu führt, dass sich die SSH ID der Steuerung jedes Mal ändert).

Schneller und einfacher Zugriff mit SSH-Mastersitzung

Die in rmacros.sh definierten Funktionen verwenden die Mastersitzungs-Funktion des OpenSSH-Clients. Der erste Befehl, der ausgeführt wird, startet im Hintergrund den ssh-Client im 'Master'-Modus, und alle nachfolgenden Befehle verwenden die von 'master' verwaltete Sitzung, um weitere ssh-Sitzungen über den gleichen sicheren Kanal auszuführen.

Dies bietet zwei Vorteile: zum Ersten muss die Passphrase für den Zugriff auf den privaten SSH-Schlüssel nur einmal eingegeben werden - danach wird die Sitzung offen gehalten, und es werden keine weiteren Anmeldungen durchgeführt.

Zum Zweiten sind dadurch neue ssh-Ausführungen so schnell wie die Eingabe von Befehlen in eine bereits geöffnete SSH-Sitzung – tatsächlich sogar schneller – weil der Befehl einmal gesendet wird, wenn Sie die Eingabetaste drücken, während eine interaktive Sitzung zeichenweise Echos während der Eingabe des Befehls verwendet.

Wenn Sie außerdem Befehle lokal von Ihrer Shell aus und nicht von der 3tshell-Konsole ausführen, ist es möglich, die volle Leistung der Shell auszunutzen und Befehle zu erfinden, die mit einer interaktiven 3tshell-Sitzung nicht möglich sind. z. B.:

Abrufen einer Liste von laufenden Anwendungen:
3t app list | grep running

Speichern einer Volume-Liste in einer Datei:
3t vol list --all >file

Übertragen einer Konfiguration von einer Anwendung auf eine andere:

3t app config app1 --batch | 3t app config app2 --stdin