Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

例: SLAX および XSLT Op スクリプトを使用した構成の変更

この例では、SLAX op スクリプトを使用して Junos OS 設定に構造化された変更を加える方法を説明します。

デバイス構成

手順

スクリプトをダウンロード、有効化、およびテストするには、次のようにします。

  1. スクリプトをテキストファイルにコピーし、 config-change.slaxという名前を付けて、デバイスの /var/db/scripts/op/ディレクトリ にコピーします。

  2. 設定モードで、 [edit system scripts op file] 階層レベルでスクリプトのファイル名を設定します。

  3. commit and-quit コマンドを発行して設定をコミットし、動作モードに戻ります。

  4. スクリプトを実行する前に、 show interfaces interface-name 運用モードコマンドを発行し、スクリプトによって無効になるインターフェイスの現在の状態を記録します。

  5. op スクリプトを実行します。

必要条件

この例では、Junos OS を実行しているデバイスを使用します。

概要と Op スクリプト

SLAX および XSLT op スクリプトは、junos.xsl インポート ファイルにある jcs:load-configuration テンプレートを使用して、Junos OS設定に構造化された変更を加えることができます。この例では、jcs:load-configuration テンプレートを使用して Junos OS を実行しているデバイスのインターフェイスを無効にする SLAX op スクリプトを作成します。jcs:load-configurationテンプレートに必要な値はすべて変数として定義され、テンプレートに渡されます。

この例では、 usage 変数は、スクリプトの関数の一般的な説明で初期化されます。スクリプトを実行すると、 jcs:output() 関数が呼び出され、使用法の説明が CLI に出力されます。これにより、スクリプトを正しい目的で使用していることを確認できます。

スクリプトは jcs:get-input() 関数を呼び出し、無効にするインターフェイスの名前の入力を求め、インターフェイス名を interface 変数に格納します。 config-changes 変数は、デバイスにロードするJunos XML設定データを格納し、 interface 変数を参照します。 jcs:load-configuration テンプレート呼び出しは、 configuration パラメーターの値を、 config-changes 変数に格納されているデータに設定します。

load-action変数は merge に設定され、新しいコンフィギュレーション・データが候補コンフィギュレーションにマージされます。これは、CLI コンフィギュレーション モードのコマンド load mergeに相当します。

options変数は、コミット操作のオプションを定義します。:= 演算子を使用してノード セットを作成し、それを commit-options パラメータの値としてテンプレートに渡します。この例では、後で参照できるようにコミットの説明をコミットログに追加するための log タグが含まれています。

jcs:open() 関数を呼び出すと、ローカル デバイス上のJunos OS管理プロセス (mgd) との接続が開き、conn変数に格納されている接続ハンドルが返されます。その後、スクリプトは jcs:load-configuration テンプレートを呼び出します。

:= 演算子は、jcs:load-configuration テンプレート呼び出しの結果を一時変数にコピーし、その変数に対して node-set 関数を実行します。結果のノードセットは、results変数に格納されます。:= 演算子は、スクリプトがコンテンツにアクセスできるように、results変数が結果ツリーのフラグメントではなくノードセットであることを保証します。

jcs:close()機能は、デバイスへの接続を閉じます。デフォルトでは、jcs:load-configurationテンプレートはCLIにメッセージを出力しません。この例では、レスポンスで xmn:warning メッセージと xnm:error メッセージを検索して出力し、コミットに関する問題を迅速に特定します。

SLAX 構文

検証

コミットの検証

目的

コミットが成功したことを確認します。

アクション

スクリプトには、 jcs:load-configuration テンプレートから返されたノード セットを解析してエラーや警告がないか調べるコードを含める必要があります。これにより、コミットが成功したかどうかをより簡単に判断できます。警告メッセージやエラーメッセージが表示されない場合は、いくつかの方法でコミットが成功したことを確認できます。

  • コミットログをチェックして、コミットが成功したことを確認します。commit-options パラメーターに log オプションを含めると、メッセージはコミット情報とともにコミット ログに表示されます。

  • syslog メッセージ ファイルをチェックして、コミット操作がログに記録されていることを確認します。この場合、無効なインターフェイスso-0/0/0の SNMP_TRAP_LINK_DOWN メッセージも表示されます。traceoptionsの構成設定によっては、このメッセージがログファイルに表示される場合と表示されない場合があります。

設定変更の確認

目的

正しい変更が設定に統合されていることを確認します。

アクション

  • 設定を表示し、指定されたインターフェイスで変更が表示されることを確認します。

  • この例では、 show interfaces interface-name 運用モードコマンドを発行して、インターフェイスが無効になっていることを確認することもできます。この場合、インターフェイスが無効になる 前に キャプチャされた出力は、インターフェイスが Enabledであることを示しています。

    スクリプトを実行してインターフェイスを無効にし た後 にキャプチャされた出力は、インターフェイスが Administratively downになったことを示しています。