N1 Service Provisioning System 4.1 リファレンスガイド

第 4 章 N1 Service Provisioning System Software のコマンド行インタフェース

この章では、N1 Service Provisioning System software のコマンド行インタフェースについて説明します。

コマンド行インタフェース (Command-Line Interface: CLI) を使用すると、シェルプロンプト、DOS プロンプト、またはスクリプトから Master Server に、コマンドの実行を依頼できます。

CLI を使用するには、Command Line Interface Client をローカルマシンにインストールする必要があります。 また cr_clij ツールを使用して CLI に対話型モードでアクセスする場合は、Jython もローカルマシンにインストールしてください。 システム要件と構成の詳細については、『N1 Service Provisioning System 4.1 インストールガイド』を参照してください。

Command-Line Execution Client は、Master Server にコマンド行インタフェースを提供します。 また Command-Line Execution Client を使用すると、以下のインタフェースからコマンドを実行できます。

Command Line Execution Client は、これらのコマンドを実行するために、TCP/IP、 SSL、または SSH によって Master Server へのセキュアな接続を確立します。

Command Line Execution Client では、Jython プログラミング言語が使用されています。 Jython は、高レベルで動的なオブジェクト指向言語である Python を Java に実装します。 Command Line Execution Client をインストールする予定のシステムには、必ず Jython をインストールしてください。 Jython と Jython のダウンロードの詳細については、http://www.jython.org を参照してください。

CLI は、Windows プロンプト、シェル、スクリプトなどの HTML 以外のインタフェースを通して N1 Service Provisioning System software にアクセスするためのツール群です。 CLI コマンドは、ファイルのチェックインなどの プロビジョニングソフトウェア の操作を自動化するために、スクリプトで使用できます。 また CLI コマンドを使用して、Web ブラウザや HTTP 接続のないシステムから Master Server へアクセスすることも可能です。

CLI の実行には、Command Line Execution Client が必要です。Command Line Execution Client は、Master Server にネットワーク接続できるサーバーであればどのサーバーでもインストールできます。 クライアントは、コマンドをネイティブオブジェクトに構文解析し、Master Server に送信します。 次にクライアントは、コマンドの結果をテキスト形式に変換し、ユーザーに示します。

ほとんどの CLI コマンドでは、ログイン認証が実施されます。 ユーザーは、各コマンドでユーザー名とパスワードまたはセッション ID を指定して認証を行います。

CLI コマンドの構造

cr_cli と cr_clij のどちらで呼び出された場合でも、すべての CLI コマンドは以下の書式を使用します。


subsystem.object.command
arguments

たとえば、ホストをデータベースに追加するコマンドは hdb.h.add です。 このコマンドは、以下を特定する 3 つの要素で構成されています。

CLI コマンドの呼び出し

コマンド行インタフェースを呼び出すツールは、以下の 2 つです。

CLI の操作

ユーザー名とパスワードまたはセッション ID による認証

コマンド行インタフェースのコマンドでは、一部を除いてユーザー名とパスワードまたはセッション ID による認証が必要です。


cr_cli -cmd [command] -u [user] -p [password]

注 –

コマンドのヘルプを参照する場合や使用可能なコマンドをすべて一覧表示する場合は、ユーザー名とパスワードは必要ありません。


セキュリティを強化したい場合は、ファイルにパスワードを設定してから、そのファイルをコマンドに渡します。 こうすることで、パスワードを含むファイルへのアクセスを制限するファイルシステムを使用できます。 認証が必要なコマンドをセキュアに入力するには、以下のメソッドを使用してください。 この手法の詳細については、「ファイルから CLI への引数の受け渡し」を参照してください。

パスワード付きファイルを作成し、そのファイルをコマンドに渡します。


cr_cli -cmd [command] -u [user] -p exp:[passwordfile] 

コマンドの一覧表示

すべての使用可能なコマンドを一覧表示するには、以下を入力します。


cr_cli -cmd -l

あるコマンド接頭辞を持つコマンドをすべて一覧表示するには、接頭辞の後にワイルドカード * を使用します。 たとえば、以下のコマンドはすべての hdb コマンドを一覧表示します。


cr_cli -cmd -l hdb.*

CLI のヘルプの参照

CLI についての一般的なヘルプにアクセスするには、以下のコマンドを入力します。


cr_cli -help

特定のコマンドのヘルプを参照するには、以下のコマンドを入力します。


cr_cli –cmd <commandname> –h 

CLI の構文

CLI の構文には以下が含まれます。

以下に一般的な CLI の構文の例を示します。

表 4–1 CLI コマンドの構文

cr_cli 

-cmd hdb.h.lo 

-ID 

NM:barolo7 

-u user -p password 

一行コマンド行インタフェースを呼び出す 

呼び出すコマンドの名前 

コマンドの引数 

値を必要とする引数に指定する値 

認証のためのユーザー名とパスワード。 セッション ID を代わりに指定することもできる 

CLI コマンドの出力書式の選択

CLI コマンドからの出力結果はいろいろな目的で使用されるため、情報を返すために CLI コマンドが使用する書式は調整できます。 CLI 出力書式は 2 種類あります。

標準出力書式

CLI は、以下の出力書式をサポートしています。

表 4–2 CLI 書式のオプション

書式のオプション 

結果 

string 

短い出力を行う。 事後処理に使用する 

serialized 

XML 直列化テキストを出力する。 別のスクリプトに情報を渡すときに使用する 

sink 

出力を破棄する。 UNIX システムでは /dev/null に出力される 

detail 

出力を表形式にフォーマットする。 詳細情報も含まれる 

出力書式を指定しない場合、コマンドはデフォルト書式で出力を行います。

あるコマンドのデフォルト出力書式を調べるには、以下のように -h をつけてコマンドを実行し、そのコマンドのヘルプ情報を参照してください。


cr_cli –cmd <commandname> –h 

デフォルト出力書式は、ヘルプの下部分にアスタリスクで囲んで表示されます。

コマンド固有の出力書式

-h 引数を使用すると、コマンドで使用可能なコマンド固有の出力書式も調べられます。表 4–3 に、コマンド固有の出力書式を示します。

表 4–3 CLI コマンドファミリのコマンド出力書式

コマンド書式 

説明 

cdb.detail 

コンポーネントの詳細テキストの出力 

cmp.detail 

比較の詳細テキストの出力 

hdb.detail 

ホストデータの詳細テキストの出力 

net.detail 

ネットワークデータの詳細テキストの出力 

net.summary 

ネットワークデータの概要の出力 

pdb.detail 

プランの詳細テキストの出力 

pe.detail 

プラン実行の詳細出力 

rule.detail 

通知規則の詳細テキストの出力 

udb.deep 

ユーザーとユーザーグループを説明する非常に詳細なテキストの出力 

udb.detail 

ユーザーとユーザーグループを説明する詳細テキストの出力 

udb.summary 

ユーザーとユーザーグループを説明する概要テキストの出力 

出力書式の指定

CLI コマンドの出力書式を指定するには、-o 引数をコマンドの最初の引数として使用します。 たとえば、hdb.h.la コマンドに対して string 出力書式を選択するには、以下のコマンドを実行します。


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

注 –

指定する出力書式は、この例のように、コマンドの後、他のすべての引数の前に入力してください。


出力データのファイルへの受け渡し

コマンドの結果データを外部ファイルに渡す場合は、-of オプションを使用できます。 -of を使用して、N1 Service Provisioning System software が実行コマンドからのデータを保存するファイルの名前をフル指定します。

たとえば、myhost という名前のホストの作成によって生じたデータを hostFile というファイルに渡すには、以下を入力します。


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

fileHost ファイルには、ホスト情報が detail 書式で記載されます (hdb.h.add コマンドのデフォルトフォーマッタ)。


注 –

-of オプションは、コマンドの後、他のすべての引数の前に入力してください。


それぞれの CLI 引数へのデータの受け渡し

データを外部ファイルから CLI に渡す場合は、file: オプションを使用できます。 たとえば、開始したばかりのセッションのセッション ID を格納して、コマンドの認証に使用できます。

セッション ID を session というファイルに保存するには、以下を入力します。


cr_cli -cmd udb.login -u [user] -p [password] > session 

次に、そのセッション ID を他のコマンドに渡すには、以下を入力します。


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

出力書式の変換

ファイルに渡したコマンドの出力書式を変換する場合は、reformat.util コマンドを使用できます。

util.reformat コマンドは、指定した出力ファイルからデータを読み取り、そのデータの書式をユーザーが選択した出力書式に変更します。

たとえば、ホストを作成して、hdb.h.add コマンドからの出力を 直列化書式で hostFile というファイルに格納しているとします。


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

前のコマンドの出力に対して util.reformat を実行し、 「それぞれの CLI 引数へのデータの受け渡し」 に説明のある file: オプションでデータを hostFile に渡して、detail 書式を使用するように指示できます。


cr_cli -cmd util.reformat -u [user] -p [password] 
-o hdb.detail -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 への引数の受け渡し

入力ファイルから CLI に引数を渡す場合は、Expand オプションを使用できます。 このオプションを実行するには、CLI に渡す情報を入力するファイルを作成します。 各引数とその値は、それぞれ別の行にリストしてください。 また引数は、コマンドが必要とする順にリストしてください。 これらの引数をコマンドに渡すには、コマンドを呼び出し、exp: 引数を最初の引数として入力します。

たとえば、 exp: オプションと一緒に使用できる 2 つのファイル (file1.txtfile2.txt) があるとします。

file1.txt:


hdb.h.la
-u
[user]
exp: file2.txt

file2.txt:


-p
[password]

これらを実行するには、以下を入力します。


cr_cli -cmd exp:file1.txt

最初のファイルが次のファイルを呼び出し、コマンドを実行します。

説明と複数の語からなる名前

説明や空白を含む他の修飾子は、以下のように引用符で囲んでください。


"This is a multi-word description.”

空白をそれぞれバックスラッシュ (\) でエスケープすることもできます。

NM: を使用した ID の置換

作成するオブジェクトの大部分は、関連する ID 番号を持っています。 ID 番号は、リポジトリ内のユーザーアカウントやコンポーネントのようなエンティティの一意の識別子です。

ID 番号は一意なので便利ですが、引数としてコマンドに入力するのは大変です。 ID 番号ではなく名前を使用する場合は、NM: タグでコマンド行にオブジェクトの名前を記述することができます。

表 4–6 に、サポートされている NM: マッピングすべての包括的なリストを示します。

完全な ID 番号ではなくオブジェクト名を使用する場合は、以下の構文で CLI コマンドのオブジェクト ID を表します。


NM:<host|user|user group name|host type name|etc.>

空白は入れないでください。

NM: 構文を使用して、コンポーネントとプランを特定することもできます。 またオプションで、名前以外にバージョン番号を指定することも可能です。


plan = NM:<plan name>[:<version>]

例:


NM:simplePlan
NM:simplePlan:1.0

バージョン番号を指定しない場合、N1 Service Provisioning System software は最新バージョンのコンポーネントまたはプランを使用します。

オブジェクトの表示と非表示

リポジトリ内のオブジェクトは相互に深い関連性をもっているので、オブジェクトを削除することはできません。 ワークスペースを整理しておくために、現在使用していないオブジェクトを非表示にすることは可能です。


注 –

オブジェクトを非表示にしても、オブジェクトがアクティブでなくなったり、使用できなくなることはありません。 たとえば、コンポーネントが参照しているリソースが非表示になった場合でも、そのリソースは、次回のコンポーネント作成でも参照されます。 リソースは、無効にされたり削除されるのではなく、単に表示されなくなるだけだからです。


以下のオブジェクトは、表示または非表示を指定できます。

CLI コマンドの操作

CLI を通して使用できるコマンドは、いくつかの主要カテゴリに分類されます。

表 4–4 サブシステムと CLI 接頭辞

サブシステム 

CLI 接頭辞 

カテゴリ 

cat 

コンポーネントデータベース 

cdb 

構成ジェネレータ 

cfg 

比較エンジン 

cmp 

ホストデータベース 

hdb 

ネットワーク操作 

net 

プランデータベース 

pdb 

プランの実行 

pe 

通知ルール 

rule 

ユーザーデータベース  

udb 

その他のユーティリティー 

util 

必須引数とオプション引数

このマニュアルのコマンドの説明とヘルプフラグによって参照できる各コマンドの説明では、コマンドの必須引数とオプション引数は以下のように表記されます。

表 4–5 引数の O/R 表記

表記 

意味 

[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) とホストタイプ ID (-tID) だけです。 ただし、新しいホストのホストタイプで、ホストの属性を指定する必要がある場合、-attr 引数も使用しなければなりません。


注 –

上の例のように、コマンドのヘルプ情報では、必須引数を意味する [R] 表記は使用されません。 必須引数は、[O][O/R] を付けずに一覧表示されるだけです。 上の -name 引数がこの例です。


cr_cli ツール

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

一行コマンドモードでは、一度に 1 つのコマンドを入力として受け付けます。 実行を依頼される各コマンドは正確に入力してください。対話式に次の入力パラメタを求められるわけではありません。 このモードで動作する場合、Command Line Execution Client はコマンド履歴を保持しません。

ここでは、例として cr_cli ツールで CLI コマンド実行します。 このコマンドは、prodserver タイプのホストをホストデータベースに追加します。 このコマンドを実行するユーザーである rbarnes は、認証パスワードを Master Server に提出します。


cr_cli –cmd hdb.h.add -user
rbarnes -p XyZ572 -name webb1 –desc `web server 1' –tID
prodserver

cr_cli コマンドは、ファイルに格納して、シェルスクリプトから呼び出せます。 これは、実行プランの実行、比較、ホストへのデータ入力などの反復的なタスクで便利です。

cr_clij ツール

対話型コマンド行モードは、シェルとして Jython インタプリタを使用します。 このモードで動作する場合の CLI の利点は次のとおりです。

Jython スクリプト

Jython スクリプト内からコマンドを呼び出すには、スクリプトの最初に以下のコードを記述します。


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

app=PyCLUI() という代入式で CLI が呼び出されます。 App.close() 呼び出しは、この Jython クラスのインスタンスを削除します。

CLI の入力タイプ

表 4–6 では、CLI コマンドに渡される各種入力引数の構文を説明します。

表 4–6 CLI の入力タイプの構文

入力タイプ 

構文 

AppInstance、AppInstanceID 

NM:<host name>:(RA|LD|MS) または  

[ID:]<ID> 

AppTypeCriteria  

<comma or pipe separated list of (RA|LD|MS)> または 

EMPTY 

AttributeCriteriaList  

<semicolon separated list of <attribute criteria>> 

ここで <attribute criteria> は <attribute name>-(contains|equals)-<glob pattern value> 

また <attribute name> は以下のどれか 

name または 

description または 

hostTypeName または 

IP または 

parentHostName または 

<user defined name> 

Boolean  

大文字小文字の区別なく、以下のどれか 

true または 

yes または 

t または 

+ または 

false または 

no または 

f または 

Category、 

CategoryID、 

Category ID Set 

<ID> 

ID:<ID> 

NM:<category name> 

CompCheckInID 

[ID:]<ID> 

ComponentTypeRefID 

NM:<comp type ref name> 

[ID:]<ID> 

Component、 

ComponentID 

NM:<comp name>[:<build number>] または 

[ID:]<ID> 

ComponentVariableSettings、ComponentVariableSettingsID  

NM:<comp name>[:<version>]:<var settings name> または 

[ID:]<ID> 

CriteriaShorthand  

any または 

planStart または 

planEndNormal または 

planEndAbnormal または 

diffStart または 

diffEndNormal または 

diffEndAbnormal または 

system または 

admin または 

custom 

DifferenceSettings、 

DifferenceSettingsID 

NM:<diff name> または 

[ID:]<ID> 

ExecutionPlan、 

ExecutionPlanID 

NM:<plan name>[:<version>] または 

[ID:]<ID> 

Group、 

GroupID 

NM:<group name> または 

[ID:]<ID> 

Hashtable  

<semicolon separated list of <key>[=<value>]> 

ここで <value> は以下のどれか 

<single value> または 

[<comma separated list of <single values>>] 

例: 

color=red;emptykey または 

arraykey=[value1,value2] 

Host、 

HostID 

NM:<host name> または 

[ID:]<ID> 

HostIDArrayArray  

<semicolon separated list of <host ID arrays>> 

ここで <host ID array> は <comma separated list of <host or host set IDs>>。 

また <host or host set ID> は以下のどれか 

HS:<HostSetID> または 

H:<HostID> 

例 :  

H:NM:host1 または 

HS:NM:hostSetFoo,H:NM:h1;H:NM:h2 

HostIDSet  

<comma separated list of <HostIDs>> 

HostSearch、 

HostSearchID  

NM:<host search name> または 

[ID:]<ID> 

HostSearchIDSet  

<comma separated list of <HostSearchIDs>> 

HostSet、 

HostSetID 

NM:<host set name> または 

[ID:]<ID> 

HostSetIDSet  

<comma separated list of <HostSetIDs>> 

HostType、 

HostTypeID 

NM:<host type name> または 

[ID:]<ID> 

HostTypeVarList  

<semicolon separated list of <key>[=<single value>] 

InputStreamWrapper  

- {stdin} または 

<input filename> 

InstalledComponentRef  

<comp name>:<comp build>:<install path> 

InstalledResourceRef  

<resource ID>:<install path> 

Level  

host または 

dir または 

file 

NamedBlockType 

以下の 3 つの直定数のどれか 

install 

uninstall 

call 

OutputStreamWrapper  

以下のどれか 

[+]<filename> {プラスは追加という意味}

- {stdout} 

-: {stderr} 

Permission、 

PermissionID  

NM:userdb.read または 

NM:userdb.write または 

NM:host.read または 

NM:host.write または 

NM:hostType.read または 

NM:hostType.write または 

NM:rule.read または 

NM:rule.write または 

NM:component.read または 

NM:component.write または 

NM:plan.read または 

NM:plan.write または 

NM:plan.run:allhosts または 

NM:plan.run:<host set name> または 

NM:diff.read または 

NM:diff.write または 

NM:diff.run:allhosts または 

NM:diff.run:<host set name> または 

[ID:]<ID> 

PhysicalCriteria  

<comma or pipe separated list of (VIRT|PHYS)> または 

EMPTY 

ReaderWrapper  

- {stdin} または 

<input file name> 

ResourceID  

[ID:]<ID> 

RoxAddress  

<IP name or address>:<port number> 

RuleID, 

RuleMetaData  

NM:<rule name> または 

[ID:]<ID> 

Scope  

component または 

host または 

hostset 

SystemServiceRefID 

NM:<system service ref name> 

[ID:]<ID> 

SeverityArray  

<empty> または 

INFO[+] {プラスは「以上」という意味} または 

WARNING[+] または 

ERROR[+] 

StringArray  

<comma separated list of <strings>> 

StringArrayArray  

<semicolon separated list of <StringArrays>> 

Style  

mm {モデルからモデル} または 

mi {モデルからディレクトリ} または 

ii {ディレクトリからディレクトリ} 

TimeInterval  

- {無限} または 

@<Date> {現在から Date まで} または 

[<weeks>w][<days>d] 

[<hours>h][<minutes>m] 

[<seconds>s][<millisecs>ms] または 

[<weeks>w][<days>d] 

[<hours>:]<minutes>[. 

<seconds>[.<millisecs>]] 

User、 

UserID 

NM:<user name> または 

[ID:]<ID> 

WriterWrapper  

以下のどれか 

[+]<filename> {プラスは追加という意味}

- {stdout} 

-: {stderr}