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

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

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

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

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

CLI コマンドの構造

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


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

common-arguments は、前述のように、authentication arguments および other-arguments よりも前の位置で使用する必要があります。次の表に、すべてのコマンドでサポートされている common-arguments を示します。

表 1–1 common arguments の使用

引数 

構文 

説明 

オプション 

文字列 

フォーマッタの名前 

of 

オプション 

文字列 

出力ファイルの名前 

オプション 

文字列 

コマンドのヘルプ 

ほとんどのコマンドでは、認証引数として -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 ファイルに書き込みます。-of 引数は -cmd で指定されたコマンドの直後に指定する必要があります。


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

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

出力をファイルにリダイレクトするもうひとつの例としては、格納済みのセッション ID を使用してコマンドを認証する場合があります。まずセッション ID の RPC 直列化表現を session という名前のファイルに保存します。この出力をファイルにリダイレクトするには、次のどちらかの方法を使用します。

セッション ID をファイルに格納してあれば、このファイルを別のコマンドへの入力として使用できます。詳細については、「ファイルからの入力の読み取り」を参照してください。

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

ファイルからコマンドにデータを渡すには、ファイル名に接頭辞 file: を追加して、ファイルを特定します。

たとえば、セッション ID が格納されているファイルがあり、このファイルを使って hdb.h.la コマンドを認証する場合は、コマンドへの入力としてこのファイルを使用します。


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

セッション ID がファイルに格納されていない場合は、接頭辞 ser: を使用することで、serialized バージョンのセッションオブジェクトを直接別のコマンドに渡せます。次の例では、udb.login コマンドと引数 -o serialized を使用して取得された serialized セッションオブジェクトを、sessionStr で使用できます。


cr_cli -cmd hdb.h.la -s ser:sessionStr

ファイルからの 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 クラスのインスタンスが削除されます。


    注 –

    Jython の SPS スクリプトでは、execStr および execRaw 呼び出しのみがサポートされています。execRaw から返されるオブジェクトは、ほかの execRaw 呼び出しのパラメータとしてのみ使用できます。execRaw 呼び出しから返されたオブジェクトを execStr 呼び出しのパラメータとして使用しようとすると、呼び出しが失敗します。オブジェクトの toString() メソッドは、execStr 呼び出しに渡す文字列の生成に使用できます。


コマンド行ヘルプの利用

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


cr_cli -help

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


cr_cli -cmd command -h

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

Optional

引数はオプションです。

Required

引数は必須です。

[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 Optional: 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 を使ってヘルプを呼び出した場合、必須引数を識別する記号、Reqired は使用されません。必須引数は、特別な記号なしで表示されます。

CLI コマンドの一覧

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


cr_cli -cmd -l

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


cr_cli -cmd -l "hdb.*"

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