前のトピック: CA AppLogic エンティティ命名規則

次のトピック: ユーザ インターフェース リファレンス ガイド


CLI コマンドのスクリプティング

CA AppLogic シェルから実行できるコマンドは、すべて ssh を使用してリモート クライアントからも実行できます。

すべての構文例において、controllerhost はアクセスされる CA AppLogic コントローラのホスト名です。 クライアントで SSH エージェントがアクセス認証に必要な ID キーを提供するよう設定されているか、そうでない場合は有効なアクセス キーが SSH ユーティリティに提供される(たとえば、コマンド ライン オプションまたは設定ファイルによって)ことを前提としています。 どのような方法でアクセス オプションを提供する場合でも、クライアントは SSH2 秘密キー(RSA または DSA)しか使用しない可能性があり、コントローラへのアクセスを「root」として要求する必要があります。 対応する公開キーは、Web インターフェースを介して、またはコントローラへのシェル アクセス権のある別のユーザによって、コントローラにインストールされている必要があります。

シェルとして GNU bash を使用している場合は、シェル機能のセットを使用して、インタラクティブに、またはスクリプト内で、シェルから CLI コマンドに簡単にアクセスできます。 「クライアント側マクロ」を参照してください。

ssh root@controllerhost entity command [args]

コントローラ上で単一の 3t シェル コマンド(command)を実行します。

ssh root@controllerhost command entity [args]

上記と同じで、コマンドおよびエンティティ名が入れ替わっています。 どちらの構文の形式も 3t シェルに受け入れられます。

注:

スクリプトのみの CLI コマンド

高度なスクリプト向けのコマンド、およびクライアント側コードが含まれたインタラクティブ シェル インターフェースの実装向けのコマンドを以下に示します。 GNU bash シェル用に実装されたインターフェースの例については、「クライアント側マクロ」を参照してください。

アプライアンス シェル アクセス
ssh [-t] controllerhost sh [args] 

このコマンドは CLI インターフェースの ssh コマンドと同じ機能がありますが、上述のように直接呼び出しのみに使用され、インタラクティブ CA AppLogic シェル プロンプトからはアクセスできません。 ターゲット アプライアンス上の擬似端子の自動設定が提供され、tty が必要なインタラクティブ コマンド(「vi」エディタなど)を透過的に使用できます。

「現在のアプリケーション」を使用したコマンドの呼び出し
ssh controllerhost =appname command [args] 

これは、上記の通常の非インタラクティブ コマンド呼び出しのバリエーションで、CA AppLogic CLI コマンドの「現在のアプリケーション」を提供します。 インタラクティブ シェルから以下の 2 つのコマンドの実行するのと同等です。

ca appname 
command [args] 

「現在のアプリケーション」をサポートする各 CLI コマンドでもアプリケーション名を明示的に指定できますが、アプリケーション名を提供するこの代替方法は、「現在のアプリケーション」の概念が独自に定義され、リモートの CA AppLogic コマンド呼び出し時に共通関数を併用するクライアント スクリプトに対して有用です。 このように、実際のリモート コマンド呼び出しを実行する関数で、コマンド構文や、特定のコマンドがアプリケーションを引数として取るかどうかを関知する必要がなくなります。コマンド内に最初の単語として現在のアプリケーション名を指定するだけで、後は CA AppLogic リモート シェルに「現在のアプリケーション」を使用する独自のルールを適用させることができます。

以下の簡単な例(GNU bash)では、リモート コマンドを呼び出すために使用する「3t」という名前の関数を定義しています。

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

この関数を使用すると、コントローラ ホストと現在のアプリケーションを設定するだけで、ローカル シェルからプレフィックス 3t を付けてリモート コマンドを使用できます。以下はその例です。

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