N1 Grid Service Provisioning System 5.0 コマンド行インタフェース (CLI) リファレンスマニュアル

第 1 章 コマンド行インタフェースの使用

この章では、N1 Grid Service Provisioning System ソフトウェアのコマンド行インタフェース (CLI) について説明します。この CLI を使って、サーバーから Master Server へコマンドを送信することができます。この CLI は、シェルプロンプト、DOS プロンプト、スクリプトのいずれかを使って実行できます。ブラウザインタフェースの代わりに CLI を使って Master Server にアクセスすることもできます。CLI を使用するためには、まずローカルサーバーに Command-Line Interface Client をインストールする必要があります。

CLI は、次のいずれかのモードで実行されます。

この章の内容は次のとおりです。

CLI コマンドの構造

cr_cli コマンドの構文は次のとおりです。


cr_cli -cmd command authentication-arguments [ other-arguments ]

ほとんどのコマンドは、認証引数 -u および -p、または -s を使用する必要があります。 コマンドが認証引数を必要とするかどうかについては、そのコマンドの説明を参照してください。コマンド行内の認証引数の位置は決まっていませんが、必ず引数 -cmd-h-o-of の後ろに挿入してください。

-cmd command

実行するコマンドの名前。

すべての CLI コマンドは、次の書式を使用する。


subsystem.object.command

たとえば、ホストをデータベースに追加するコマンドは hdb.h.add

subsystem はサブシステムの名前。たとえばホストデータベースコマンドは、hdb で表される。

object はコマンドの影響を受けるオブジェクト。たとえばホストは、h で表される。

command はコマンドが実行するアクション。たとえばホストをデータベースに追加するアクション、add などがある

authentication-arguments

ほとんどの CLI コマンドは認証を必要とするが、ヘルプの表示や使用可能なコマンドの一覧表示には認証は不要。

-u user-name

認証に使用するユーザー名。認証を行うためには、このユーザーのパスワードも指定する必要がある。

ユーザー名とパスワードを入力する代わりに、セッション ID を指定する方法もある

-p password

-u で指定されたユーザーの認証に使用されるパスワード。

コマンド行に指定したパスワードは保護されていない。プロセスリストやシェルのコマンド行履歴に、このパスワードが含まれている可能性がある。したがって、パスワードを保護するには、ユーザー名とパスワードをローカルファイルシステム上のファイルに保存し、コマンドへの入力としてこのファイルを参照するとよい。これについては、例 1–1 の最初の例を参照のこと。また、ユーザーがこのファイルを所有していることと、このファイルの読み取りがこのユーザーだけに許可されていることを確認すること

-s session-ID

セッションの認証に使用されるセッション ID。

セッション ID を取得し、認証用として使用する方法については、「ファイルからの入力の読み取り」を参照のこと。

セッション ID を入力する代わりに、引数 -u-p を使ってユーザー名とパスワードを指定することもできる

other-arguments

command に関連付けられた引数と値

cr_cli コマンドは成功時に 0、失敗時に 1 を返します。


例 1–1 CLI の使用

以下に、プロビジョニングソフトウェアの CLI の使用例を示します。


NM: を使った ID 置換

ユーザーが作成したほとんどのオブジェクトには、ID 番号が付けられます。ID 番号は、リポジトリ内のオブジェクト (ユーザーアカウント、コンポーネントなど) を識別する一意の識別子です。

ID 番号は便利ですが、扱いにくい場合もあります。ID 番号の代わりに名前を使用する場合は、NM: 表記を使ってオブジェクト名を入力します。

サポートされている NM: マッピングの一覧は、付録 A 「入力タイプ」に記載されています。

たとえば、ホスト、ユーザー名、ユーザーグループ名、ホストタイプ名などのオブジェクト ID の代わりに、次のような構文を使用することができます。


NM:host
NM:user-name
NM:user-group-name
NM:host-type-name

NM: 構文では、名前やオプションのバージョン番号を指定して、コンポーネントやプランを識別することができます。


NM:plan-name[:version]

以下に、この表記の使用例を示します。


NM:simplePlan
NM:simplePlan:1.0
NM:/foo/bar/simplePlan:1.1

バージョン番号の指定を省略した場合、最新バージョンが使用されます。

CLI の入力と出力

以下では、CLI の入力としてファイルを使用する方法と、CLI コマンドの出力をファイルに格納する方法について説明します。

出力をファイルへリダイレクト

コマンド出力をファイルへリダイレクトするには、-of 引数を使用します。-of 引数は、ファイルの完全パスを引数として取ります。

たとえば、以下のコマンドは、出力を hostFile ファイルに書き込みます。


cr_cli -cmd hdb.h.add -of hostFile -u user-name
-p password -name myhost -tID NM:roxhost

コマンドの実行後、hostFile には、出力が detail 書式 (hdb.h.add コマンドのデフォルト出力書式) で追加されます。

-of 引数は -cmd で指定されたコマンドの直後に指定する必要があります。

ファイルからの入力の読み取り

ファイルからデータを読み取るには、ファイル名の前に接頭辞 file: を付けて、ファイルを識別します。

たとえば、開始したばかりのセッションのセッション ID を保存し、あとでコマンド認証に使用する場合は、まずセッション ID の RPC 直列化表現を session という名前のファイルに保存します。


cr_cli -cmd udb.login -u user-name -p password -o serialized > session

次に、session 内のセッション ID を別のコマンドへの入力として使用します。


cr_cli -cmd hdb.h.la -s file:session

ファイルからの CLI 引数の読み取り

入力ファイルから CLI 引数を読み取るには、識別のため、入力ファイルに接頭辞 exp: を付ける必要があります。まず、CLI に渡す情報をファイルに保存します。引数は、コマンドが要求する順に、1 行に 1 つずつ入力してください。

次に、ファイルに指定した引数をコマンドに渡します。

コマンド引数を指定するには、たとえば、file1.txt ファイルと file2.txt ファイルを exp: と組み合わせて使用します。

file1.txt の内容は次のとおりです。


hdb.h.la
-u
user-name
exp:file2.txt

file2.txt の内容は次のとおりです。


-p
password

この 2 つのファイルに記述されたコマンドを実行するには、次のように入力します。


cr_cli -cmd exp:file1.txt

CLI コマンドの出力書式

CLI コマンドの出力書式は調整可能です。CLI コマンドの出力書式を指定するには、-cmd で指定したコマンドの直後に -o 引数を指定します。

たとえば、hdb.h.la コマンドの出力書式として string を指定するには、次のように入力します。


cr_cli -cmd hdb.h.la -o string -u user-name -p password

すべての CLI コマンドで使用できる標準出力書式は次のとおりです。

raw

コマンドごとに、結果の内部文字列表現を生成する

string

簡潔な出力を生成する

serialized

XML 直列化テキスト出力を生成する。

この引数は、別のスクリプトに情報を渡すときに使用する。この書式の構造は変更される可能性があるので、書式の構造に依存しないように注意すること

sink

出力を破棄する。

UNIX システムでは、出力を /dev/null にリダイレクトする

detail

詳細情報を表示する。この書式は、コマンドによっては使用できない場合がある

出力書式の指定を省略した場合、デフォルトの出力書式が使用されます。コマンドのデフォルトの出力書式を確認するには、次のコマンドを実行します。


cr_cli -cmd command -h

出力書式の変更

ファイルに書き込まれたコマンド出力書式を変更するには、reformat.util コマンドを使用します。reformat.util コマンドは、指定の出力ファイルからデータを読み取り、このデータに指定の出力書式を設定します。

たとえば、ホストを作成し、hdb.h.add コマンドの出力を hostFile ファイルに serialized 書式で保存したとします。


cr_cli -cmd hdb.h.add -o serialized -u user-name -p password -name myhost
-tID NM:roxhost > hostFile

この出力の書式を hdb.detail に変更する場合は、util.reformat コマンドを使用します。


cr_cli -cmd util.reformat -o hdb.detail -u user-name -p password
-self file:hostFile

コマンドの出力書式が、次のように変更されます。


ID: 010010000204-1027365659275-00170-1199101891
Name: myhost
Description: 
Virtual: false
Hidden: false
Type ID: 010010001024-0000000000000-00001-0000000004
Attributes:
<Table is empty>
Applications:
<Table is empty>

コマンド行インタフェースの実行

CLI コマンドを 1 つずつ実行するときは、cr_cli ツールを使用します。このツールは、CLI を単一行コマンドモードで呼び出します。

単一行コマンドモードでは、コマンドの入力が 1 つずつ受け付けられます。先に入力されたコマンドが完了するまで、次の入力パラメータは受け付けられません。このモードでは、Command Line Execution Client はコマンド履歴を保持しません。

cr_cli コマンドをファイルに格納し、シェルスクリプトから呼び出すことができます。この機能は、実行プランや比較の実行、ホストの生成など、あるタスクを何回も繰り返して実行する場合に便利です。

対話型コマンド行モードでは、シェルとして Jython インタプリタを使用します。このモードでは、CLI を使用すると、次のような利点が得られます。

Procedure単一コマンド CLI を実行する

手順

    CLI Client のインストール先サーバーで、次のコマンドを入力します。


    ./cr_cli -cmd subsystem.object.command -u user -p password
    

ProcedureCLI Jython インタプリタを実行する

手順
  1. CLI Client と Jython のインストール先サーバーで、CLI Jython インタプリタを起動します。


    ./cr_clij
  2. スクリプトの先頭に次のコードを追加します。


    from clui import *
    app=PyCLUI() 
    app.execStr(CLI command) 	
    App.close()

    app=PyCLUI() の指定で、CLI が呼び出されます。App.close() 呼び出しで、この Jython クラスのインスタンスが削除されます。

コマンド行ヘルプの利用

CLI に関する一般的なヘルプを表示するには、次のように入力します。


cr_cli -help

特定のコマンドのヘルプを表示するには、次のように入力します。


cr_cli -cmd command -h

コマンドの説明テキストでは、次の記号で、引数が必須であるかオプションであるかを区別しています。

[O]

引数はオプションです。

[R]

引数は必須です。

[O/R]

引数は通常はオプションですが、必須になることもあります。

この場合、引数がいつ必要になるかについてのヘルプが表示されます。

以下に、例として hdb.h.add コマンドのヘルプを示します。


-u [O/R]: The user username for authentication: String
-p [O/R]: The user password for authentication: String
-s [O/R]: The session ID for authentication: SessionID
-name: The host name: String
-desc [O]: The host description: String
-tID: The ID of the host type: HostTypeID
-attr [O/R]: The host attributes; required if the host type requires
  them: Hashtable

この例では、必須の引数は、-name-tID のほか、認証引数 -u および -p、または -s だけです。 新しいホストが、ホスト属性を必要とするホストタイプである場合は、-attr 引数も必須になります。

-h を使ってヘルプを呼び出した場合、必須引数を識別する記号、[R] は使用されません。必須引数は、特別な記号なしで表示されます。

CLI コマンドの一覧

使用可能なコマンドを一覧表示するには、次のように入力します。


cr_cli -cmd -l

同じコマンド接頭辞を持つコマンドを一覧表示するときは、その接頭辞の後ろにワイルドカード * を指定します。場合によっては、* の前にエスケープ文字としてバックスラッシュ (\) を入力するか、コマンド名の部分を二重引用符で囲む必要があります。たとえば、hdb コマンドを一覧表示するには、次のように入力します。


cr_cli -cmd -l "hdb.*"

CLI コマンドは、以下のカテゴリにグループ分けされています。