前のトピック: グローバル ユーザおよびグループ

次のトピック: アプリケーションとアプライアンスのロック

高度な使用方法

GNU bash を使用するユーザの場合: クライアント側マクロ - ローカルのコマンド プロンプトから CA 3Tera AppLogic シェル コマンドに直接アクセスするための代替手段

クライアント側マクロ

GNU bash および OpenSSH クライアントのクライアント側マクロ。ローカルのシェル プロンプトから直接 3tshell (CA 3Tera AppLogic コマンド ライン インターフェース)のすべての機能に簡単にアクセスできます。

ダウンロード方法

お使いのシステムでこれを使用するには、GNU bash 2.0 以降および OpenSSH クライアント プログラム(ssh)バージョン 3.9 以降をインストールします。 添付されるシェル ファイルをダウンロードしてディスクに保存し、source コマンド(または「.」)を使用して、ファイルをシェル内に含めます。これは「.bashrc」ファイルで実行できます。これにより、開始するすべてのインタラクティブ シェル インスタンスでシェル ファイルを使用できるようになります。

rmacros.sh ファイルがロードされると、以下のコマンドをシェル プロンプトから使用できるようになります。 これらのコマンドは、スクリプトから「source」コマンドを実行して rmacros.sh ファイルを含めることで、自作の非インタラクティブ スクリプト内でも使用できます。

controller hostname-or-ip

後続コマンドの実行対象となるコントローラのホスト名を設定します。 これは、ほかのコマンドを使用する前に実行される必要があります。

controller -

コントローラから切断します。 これにより、コントローラのマスタ ssh セッションが閉じられます。

3t <任意の 3tshell コマンド>

これは、CA 3Tera AppLogic シェル プロンプトでコマンドを入力するのと同じことです。 この形式は、シンプルなコマンドや無人バッチ処理を実行する場合に便利です。 ユーザによる操作(ボリューム管理など)を必要とするコマンドには、3t -t を使用します。

3t -t <任意の 3tshell コマンド>

「3t 任意の 3tshell コマンド」と同じですが、ssh 擬似端子を有効にして CA 3Tera AppLogic シェルを実行することによって、インタラクティブ モードを有効にします。

3t

インタラクティブ CA 3Tera AppLogic シェルを呼び出します。

ca appname

現在のアプリケーションを設定します。 これは、インタラクティブ シェルの「ca」コマンドと同じ方法で機能します。 「3t」コマンドの呼び出しごとに CA 3Tera AppLogic シェルの新規インスタンスが開始されるため、3t ca myapp の実行は機能しません。

pwa

現在のアプリケーションの名前を出力します(ca で設定されたとおりに)。

assh [appname:]component

現在のアプリケーションまたは指定されたアプリケーションの実行中アプライアンス インスタンスにインタラクティブ シェルを開きます。 component はアプリケーション階層内のインスタンスのフル ネームです。 最上位レベルのアセンブリ(main.)の名前は省略できます。たとえば、以下のように表記できます。

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

アプライアンス インスタンス上で非インタラクティブ コマンドを実行します。 注: CA 3Tera AppLogic の古いバージョン(1.x)では、コマンド名と引数にスペースを含めることはできません。次のような場合、期待どおりには機能しません。

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

古いグリッド上でこれを実行する必要がある場合は、短いスクリプトを作成し、下記の ascp コマンドを使用して、実行中アプライアンスにコピーしてから、スクリプトを開始します。

ascp src dest

実行中アプライアンスから、または実行中アプライアンスへファイルをコピーします。 src と dest パラメータのいずれかは、ローカルのファイルまたはディレクトリの名前である必要があります。 もう一方は、「scp」コマンドと同様の形式でリモートのアプライアンスおよびファイル名を指定します。

comp.name:filename 

コンポーネント名は、アプリケーション アセンブリ内のコンポーネントのフル パスです(assh の場合と同様、main. プレフィックスは省略できます)。 このコマンドを実行するには、現在のアプリケーションが ca コマンドで設定されている必要があります。

als

ショートカット 3t app list と同じ。

astart

ショートカット 3t app start `pwa` と同じ。

astop

ショートカット 3t app stop `pwa` と同じ。

vmnt

CA 3Tera AppLogic 2.3 以降ではサポートされていません。 代わりに、新しいボリューム管理操作を使用します。

vumnt

CA 3Tera AppLogic 2.3 以降ではサポートされていません。

カスタム SSH オプションの設定

SSH オプションを設定する通常の方法(~/.ssh/config ファイル内で設定する)以外に、rmacros.sh で提供されるコマンドも、オプションが指定された環境変数設定を受け入れます。このオプションは、マクロで生成される ssh 呼び出しのみに影響し、ほかの ssh コマンドには影響を与えません。 これは、CA 3Tera AppLogic グリッドの操作や別の ssh セッション用に異なる設定が必要な場合に便利です。.ssh/config ファイルでサポートされるホストごとのメソッドは、異なるオプションを分離するのに適していないためです。 このことは、CA 3Tera AppLogic グリッドへの「管理者」アクセス権がある場合(そのグリッドを自分がインストールした場合)にも当てはまります。そのような場合、コントローラへの root アクセス権を提供する SSH キーが付与されますが、これは通常の「クライアント」として機能する際には必要のないものです。

rmacros.sh でリモート アクセス マクロにオプションを追加するには、AL_SSH_OPT 変数を設定します。 変数には、ssh およびすべての同系プログラム(scp、sftp など)で受け入れられる形式(-o OptionName=option-value)でオプションを含める必要があります。 -i や -t などの省略オプションは使用しないでください。それらは ssh では機能しますが、scp では機能しません。

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

これは SSH に次の内容を伝えます。公開キー認証に対してキー /home/lk/t-key を使用する。ssh エージェントから付与されたキーは使用しない。厳密なホスト ID チェックを無効にする(これは、グリッドをゼロから頻繁に再インストールする場合のみ適用し、コントローラの SSH ID が毎回変更されるようにします)。

マスタ SSH セッションの迅速かつ簡単なアクセス

rmacros.sh で定義される機能では、OpenSSH クライアントのマスタ セッション機能を使用します。 最初に実行されるコマンドによって、バックグラウンド ssh クライアントが「マスタ」モードで開始されます。後続のすべてのコマンドでは、「マスタ」によって管理されるセッションを使用して、同じ安全なチャネル上で追加の ssh セッションが実行されます。

これには 2 つの利点があります。1 つは、SSH 秘密キーにアクセスするためのパスフレーズの入力が 1 回で済む点です。その後、セッションは開いたままに維持され、追加のログインは行われません。

もう 1 つは、これによって、「ssh」の新規呼び出しが、すでに開いている SSH セッションへのコマンドを入力するのと同じくらい速く、実際にはさらに速くなる点です。前者では Enter キーを押したときにコマンドが 1 回送信されるのに対して、インタラクティブ セッションではコマンドが入力されるたびに 1 字単位の echo が使用されるためです。

また、3tshell コンソールからではなく、シェルからローカルでコマンドを実行すると、シェルの全機能を使用でき、インタラクティブ 3tshell セッションでは構成できないコマンドを構成できます。以下はその例です。

実行中のアプリケーションのリストを取得する。
3t app list | grep running

ボリューム リストをファイルに保存する。
3t vol list --all >file

アプリケーションから別のアプリケーションに設定を転送する。

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