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を実行しているデバイスを使用しています。

概要と運用スクリプト

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:warningxnm:error 、コミットの問題を迅速に特定します。

SLAX 構文

検証

コミットの検証

目的

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

アクション

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

  • コミット ログを確認して、コミットが成功したことを確認します。パラメーターに commit-options オプションをlog含める場合、コミットログにコミット情報とともにメッセージを表示する必要があります。

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

設定変更の検証

目的

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

アクション

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

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

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