この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
nrcmd コマンドは、Cisco CNS Network Registrar クラスタを対話的に設定して制御するために使用できます。また、他のプログラムやスクリプトのためのプログラミング インターフェイスとして使用できます。この章では、 nrcmd コマンドをアプリケーション プログラミング インターフェイス(API)として使用する方法について説明します。
nrcmd コマンドを使用すると、Network Registrar クラスタに接続してコンフィギュレーション データの読み取りと書き込みを行い、状態データを読み取り、制御操作を実行できます。
Network Registrar クラスタは、次のものから構成されます。
• データ マネージャである MCD サーバ。DNS、DHCP、TFTP の各サーバのコンフィギュレーションと状態情報が格納された固定データストアへのアクセスを制御します。
• サーバ エージェントである Network Registrar Server Agent。プロトコル サーバの起動および停止を行い、プロトコル サーバに標準制御インターフェイスを提供します。
クラスタにログインするときは、名前とパスワードによって認証されます。認証プロトコルは片方向のハッシュを使用し、パスワードが回線上に伝送されないようにします。対話モードでは、 nrcmd コマンドから、有効なユーザ名とパスワードを入力するよう求められます。ユーザ名やパスワードは、コマンドラインや環境変数で指定できます。
管理者パスワードは、コマンド スクリプト内に組み込むと不都合な場合があります。そのため、環境変数エントリを使用して目につきにくい場所に配置できます。環境変数 CNR_CLUSTER、CNR_NAME、および CNR_PASSWORD には、それぞれ、クラスタ、管理者名、および管理者パスワードの値を指定します。
管理者名およびパスワードの作成の詳細については、「admin」を参照してください。
nrcmd は接続時に実行する処理の量が多いため、1 回のセッションで複数のコマンドを実行する方が、コマンドごとに別の接続を開始してログインするよりも効率的です。1 回の nrcmd セッションで複数のコマンドを実行する最も簡単な方法は、1 行に 1 つのコマンドを記述したバッチ ファイルを作成し、そのファイルから標準入力をリダイレクトすることです。より複雑になりますが、コマンド シーケンスをより高度に制御できる方法は、制御プログラムから nrcmd を実行し、プログラムからコマンドを送信してコマンドの状態と出力を読み取ることです。
複数のコンフィギュレーション コマンドを自動的に実行するための最も簡単な方法は、nrcmd コマンドのバッチ ファイルを作成して、順に実行することです。たとえば、スコープを作成して予約を追加するには、次のコマンドを入力してファイル scope.txt に保存します。シャープ記号(#)で始まる行はコメント行です。
#
This set of commands creates a scope and adds four reservations
(注) 最後のコマンドラインの末尾には改行文字が必要です。改行文字がないとコマンドは実行されません。
これで、1 回の nrcmd セッションを実行して、これらのコマンドをすべて実行できます。
%
nrcmd -b < scope.txt
1 つのバッチ ファイルを使用する利点は、複数のコンフィギュレーション コマンドを 1 回分の接続コストだけで実行できることです。ただし、コマンド(たとえば、前の例では、最初のスコープ作成)が失敗した場合、後続のコマンドが無用であってもバッチ ファイルは続けて実行されます。
session コマンドの assert 機能を使用して、簡単なロジック チェックを実行できます。このコマンドを使用すると、 nrcmd バッチ スクリプトの所定の条件が真であることを確定できます。条件が真の場合、コマンドには影響がありません。偽の場合、バッチ ファイルがその時点で終了します。たとえば、前の例の scope.txt ファイルでは、一連の scope コマンドを実行する前にクラスタがロックされているかどうかを確認できます。
#
Quit if cluster cannot be locked
session コマンドの詳細については、「session」を参照してください。
実行する nrcmd コマンドに等号(=)が含まれている場合は、引用符で囲みます。たとえば、1 つのコマンドを使用してクライアントクラス名を作成するには、次のように入力します。
Network Registrar を自動的に設定して制御するためのより高度な方法は、プログラムまたはスクリプトを使用して nrcmd セッションを開始して、標準入出力を介してセッションと通信することです。
nrcmd を他のプログラムから制御するには、nrcmd を制御プログラムから起動し、nrcmd の標準入出力を制御プログラムのファイル ハンドルにリダイレクトする必要があります。この操作により、制御プログラムは、コマンドを入力ファイル ハンドルに書き込み、結果を出力ファイル ハンドルから読み込むことができます。
バッチ モードで実行する場合は、nrcmd が入力を一度に 1 行ずつ読み取り、新しい行をプロンプトの後に出力します。これによって、次のようなあらゆるコマンドに対応して容易に解析できる一連の行が提供されます。
• 構文が、 status-line result-lines prompt-line である。
• status-line の形式が [0-9]{3} .* である。
• 0 または 0 より大きい、任意の形式の result-lines が存在する。
nrcmd を子プロセスとして起動し、その標準入出力との間で読み取りと書き込みを行う方法の詳細は、制御プログラムを実装するのに使用するプログラミング言語に固有です。
(注) Network Registrar 6.2 以降のリリースでは、ソフトウェアに代替のプログラマティック インターフェイスを提供する、Java ベースの SDK をインストールできます。Network Registrar SDK は、Web UI および CLI とは別にインストールされます。SDK のマニュアルは、インストール メディアに収められています。