- play_arrow 概要
- play_arrow Junos自動化スクリプトの概要
- play_arrow Junos XML 管理プロトコルと Junos XML API の概要
-
- play_arrow XSLT を使用した自動化スクリプト
- play_arrow XSLT の概要
- play_arrow 自動化スクリプトで使用される標準 XPath および XSLT 関数
- play_arrow 自動化スクリプトで使用される標準 XSLT 要素と属性
-
- play_arrow SLAX を使用した自動化スクリプティング
- play_arrow SLAX の概要
- play_arrow SLAX ステートメント
- append
- apply-imports
- apply-templates
- attribute
- attribute-set
- call
- copy-node
- copy-of
- decimal-format
- element
- else
- else if
- expr
- fallback
- for
- for-each
- function
- if
- import
- key
- match
- message
- mode
- mvar
- number
- output-method
- param
- preserve-space
- priority
- processing-instruction
- result
- set
- sort
- strip-space
- template
- terminate
- trace
- uexpr
- use-attribute-sets
- var
- version
- while
- with
- play_arrow 自動化スクリプティングのための libslax ディストリビューション
-
- play_arrow Pythonを使用した自動化スクリプティング
- play_arrow Python の概要
- Junosデバイス向けPython自動化スクリプトについて
- JunosデバイスでPython自動化スクリプトを実行するための要件
- Junos デバイスでの Python モジュールの概要
- Junos OS を搭載したデバイスでの Python インタラクティブ モードの使用方法
- psutil モジュールを使用して、Junos OS を実行しているデバイスのプロセスおよびシステム情報を取得する方法
- Junos OS を搭載したデバイスで Python 用リクエスト ライブラリを使用する方法
- Python 自動化スクリプトでの IPv6 サポート
- Junos OS Evolvedを実行しているデバイス上のPython 3アプリケーションでルーティングインスタンスを指定する方法
-
- play_arrow 自動化スクリプト入力
- play_arrow 自動化スクリプトのグローバルパラメーター
-
- play_arrow 自動化スクリプトの拡張機能と名前付きテンプレート
- play_arrow 自動化スクリプティングの拡張機能
- play_arrow jcs 名前空間と slax 名前空間の拡張関数
- base64-decode() Function (SLAX)
- base64-encode() Function (SLAX)
- break-lines() Function (SLAX and XSLT)
- close() Function (SLAX and XSLT)
- dampen() Function (Python, SLAX, and XSLT)
- document() Function (SLAX)
- emit_error() Function (Python)
- emit_snmp_attributes Function (Python)
- emit_warning() Function (Python)
- empty() Function (SLAX and XSLT)
- evaluate() Function (SLAX)
- execute() Function (SLAX and XSLT)
- first-of() Function (SLAX and XSLT)
- get-command() Function (SLAX)
- get-hello() Function (SLAX and XSLT)
- get-input() Function (SLAX and XSLT) and get_input() (Python)
- get-protocol() Function (SLAX and XSLT)
- get-secret() Function (SLAX and XSLT) and get_secret() (Python)
- get_snmp_action() Function (Python)
- get_snmp_oid() Function (Python)
- hostname() Function (Python, SLAX, and XSLT)
- invoke() Function (SLAX and XSLT)
- open() Function (SLAX and XSLT)
- output() Function (Python, SLAX, and XSLT)
- parse-ip() Function (SLAX and XSLT) and parse_ip() (Python)
- printf() Function (Python, SLAX, and XSLT)
- progress() Function (Python, SLAX, and XSLT)
- regex() Function (SLAX and XSLT)
- set_routing_instance() Function (Python)
- sleep() Function (SLAX and XSLT)
- split() Function (SLAX and XSLT)
- sysctl() Function (Python, SLAX, and XSLT)
- syslog() Function (Python, SLAX, and XSLT)
- trace() Function (Python, SLAX, and XSLT)
- play_arrow 自動化スクリプティング用の名前付きテンプレート
- play_arrow jcs 名前空間の名前付きテンプレート
-
- play_arrow 自動化スクリプトの管理
- play_arrow スクリプトの保存と有効化
- play_arrow スクリプトのリモートソースの設定
- play_arrow スクリプトのセッションプロトコルを設定する
- play_arrow スクリプトの実行の制御
- play_arrow ルーティングエンジン間でのスクリプトの同期
- play_arrow SLAX と XSLT 間でのスクリプトの変換
-
- play_arrow コミット スクリプト
- play_arrow コミット スクリプトの概要
- play_arrow コミット スクリプトの作成と実行
- play_arrow コミットスクリプトを使用したカスタム警告、エラー、またはシステムログメッセージの生成
- play_arrow コミットスクリプトを使用して、永続的または一時的な設定変更を生成
- play_arrow コミットスクリプトマクロを使用したカスタム設定構文の作成
- play_arrow コミット スクリプトの例
- 例:最終ページを追加してから、期限に同意する方法をファイアウォールに追加する
- 例:RIP グループへの T1 インターフェイスの追加
- 例: コミット スクリプトを使用した分類子の割り当て
- 例:論理インターフェイスとIPアドレスを自動的に設定する
- 例:LSP の管理グループの設定
- 例:デフォルトのカプセル化タイプを設定する
- 例:デュアル ルーティング エンジンの設定
- 例:インターフェイスでの内部ゲートウェイ プロトコルの設定
- 例:IS-IS および MPLS インターフェイスの制御
- 例:LDP 設定の制御
- 例:単純なインターフェイス設定に基づいた複雑な設定の作成
- 例:最小MTU設定を課す
- 例:ATM仮想回線の数の制限
- 例:E1 インターフェイス数の制限
- 例: 基本コンフィギュレーションのロード
- 例:グローバル ポリシーを先頭に追加する
- 例:フル ルーティング テーブルのインポートの防止
- 例:T1 インターフェイスで内部クロッキングが必要
- 例: 設定ステートメントの要求と制限
- play_arrow コミット スクリプトで使用される Junos XML と XSLT のタグ要素
- play_arrow コミットスクリプトのトラブルシューティング
-
- play_arrow イベントポリシーとイベントスクリプト
- play_arrow イベントポリシーの概要
- play_arrow イベント ポリシー トリガー
- play_arrow イベント ポリシー アクション
- 動作モードコマンドを実行するイベントポリシーの設定
- 設定を変更するイベントポリシーの設定
- 例:イベント ポリシーを使用した設定の変更
- 例:イベントに応じたインターフェイス設定の変更
- イベントポリシーでのイベントスクリプトの実行
- イベントスクリプトを使用した設定の変更
- イベントスクリプトに引数を渡すためのイベントポリシーの設定
- イベントを無視するイベントポリシーの設定
- 例: 他のイベントの受信に基づくイベントの無視
- イベントポリシーを使用したSNMPトラップの発生の概要
- 例:イベントに応答してSNMPトラップを発生させる
- イベント・ポリシーでのイベント・システム・ログの優先度の理解
- 例:イベントポリシーでのイベントシステムログ優先度の設定
- 例: 特定のイベントタイプに基づくイベントスクリプト出力の制限
- play_arrow イベント ポリシー ファイルのアーカイブを構成する
- play_arrow イベントポリシー権限の構成
- play_arrow イベントスクリプトの概要
- play_arrow イベントスクリプトの作成と実行
- play_arrow トラブルシューティング : イベントポリシーとイベントスクリプト
-
- play_arrow SNMP スクリプト
- play_arrow SNMP スクリプトの概要
- play_arrow SNMPスクリプトの作成と実行
- play_arrow SNMP スクリプトの例
- play_arrow SNMPスクリプトのトラブルシューティング
-
- play_arrow 設定ステートメントと運用コマンド
項目一覧
例: SLAX および XSLT Op スクリプトを使用した構成の変更
この例では、SLAX op スクリプトを使用して Junos OS 設定に構造化された変更を加える方法を説明します。
デバイス構成
手順
スクリプトをダウンロード、有効化、およびテストするには、次のようにします。
スクリプトをテキストファイルにコピーし、 config-change.slaxという名前を付けて、デバイスの /var/db/scripts/op/ディレクトリ にコピーします。
設定モードで、
[edit system scripts op file]
階層レベルでスクリプトのファイル名を設定します。content_copy zoom_out_map[edit system scripts op] user@host# set file config-change.slax
commit and-quit
コマンドを発行して設定をコミットし、動作モードに戻ります。content_copy zoom_out_map[edit] user@host# commit and-quit
スクリプトを実行する前に、
show interfaces interface-name
運用モードコマンドを発行し、スクリプトによって無効になるインターフェイスの現在の状態を記録します。op スクリプトを実行します。
content_copy zoom_out_mapuser@host> op config-change This script disables the interface specified by the user. The script modifies the candidate configuration to disable the interface and commits the configuration to activate it. Enter interface to disable: so-0/0/0
概要と 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 構文
version 1.2; ns junos = "http://xml.juniper.net/junos/*/junos"; ns xnm = "http://xml.juniper.net/xnm/1.1/xnm"; ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0"; ns ext = "http://xmlsoft.org/XSLT/namespace"; import "../import/junos.xsl"; match / { <op-script-results> { var $usage = "This script disables the specified interface." _ "The script modifies the candidate configuration to disable " _ "the interface and commits the configuration to activate it."; var $temp = jcs:output($usage); var $interface = jcs:get-input("Enter interface to disable: "); var $config-changes = { <configuration> { <interfaces> { <interface> { <name> $interface; <disable>; } } } } var $load-action = "merge"; var $options := { <commit-options> { <log> "disabling interface " _ $interface; } } var $conn = jcs:open(); var $results := { call jcs:load-configuration( $action=$load-action, $commit-options=$options, $configuration=$config-changes, $connection=$conn); } var $close-results = jcs:close($conn); if ($results//xnm:error) { for-each ($results//xnm:error) { <output> message; } } if ($results//xnm:warning) { for-each ($results//xnm:warning) { <output> message; } } } }
検証
コミットの検証
目的
コミットが成功したことを確認します。
アクション
スクリプトには、 jcs:load-configuration
テンプレートから返されたノード セットを解析してエラーや警告がないか調べるコードを含める必要があります。これにより、コミットが成功したかどうかをより簡単に判断できます。警告メッセージやエラーメッセージが表示されない場合は、いくつかの方法でコミットが成功したことを確認できます。
コミットログをチェックして、コミットが成功したことを確認します。
commit-options
パラメーターにlog
オプションを含めると、メッセージはコミット情報とともにコミット ログに表示されます。content_copy zoom_out_mapuser@host> show system commit 0 2010-09-22 17:08:17 PDT by user via junoscript disabling interface so-0/0/0
syslog メッセージ ファイルをチェックして、コミット操作がログに記録されていることを確認します。この場合、無効なインターフェイスso-0/0/0の
SNMP_TRAP_LINK_DOWN
メッセージも表示されます。traceoptionsの構成設定によっては、このメッセージがログファイルに表示される場合と表示されない場合があります。content_copy zoom_out_mapuser@host> show log messages | last Sep 22 17:08:13 host file[7319]: UI_COMMIT: User 'user' requested 'commit' operation (comment: disabling interface so-0/0/0) Sep 22 17:08:16 host mib2d[1434]: SNMP_TRAP_LINK_DOWN: ifIndex 526, ifAdminStatus down(2), ifOperStatus down(2), ifName so-0/0/0
設定変更の確認
目的
正しい変更が設定に統合されていることを確認します。
アクション
設定を表示し、指定されたインターフェイスで変更が表示されることを確認します。
content_copy zoom_out_mapuser@host> show configuration interfaces so-0/0/0 disable;
この例では、
show interfaces interface-name
運用モードコマンドを発行して、インターフェイスが無効になっていることを確認することもできます。この場合、インターフェイスが無効になる 前に キャプチャされた出力は、インターフェイスがEnabled
であることを示しています。content_copy zoom_out_mapuser@host> show interfaces so-0/0/0 Physical interface: so-0/0/0, Enabled, Physical link is Up Interface index: 128, SNMP ifIndex: 526 Link-level type: PPP, MTU: 4474, Clocking: Internal, SONET mode, Speed: OC3, Loopback: None, FCS: 16, Payload scrambler: Enabled Device flags : Present Running Interface flags: Point-To-Point SNMP-Traps Internal: 0x4000 Link flags : Keepalives CoS queues : 4 supported, 4 maximum usable queues Last flapped : 2010-09-14 10:33:25 PDT (1w1d 06:27 ago) Input rate : 0 bps (0 pps) Output rate : 0 bps (0 pps) SONET alarms : None SONET defects : None
スクリプトを実行してインターフェイスを無効にし た後 にキャプチャされた出力は、インターフェイスが
Administratively down
になったことを示しています。content_copy zoom_out_mapuser@host> show interfaces so-0/0/0 Physical interface: so-0/0/0, Administratively down, Physical link is Up Interface index: 128, SNMP ifIndex: 526 Link-level type: PPP, MTU: 4474, Clocking: Internal, SONET mode, Speed: OC3, Loopback: None, FCS: 16, Payload scrambler: Enabled Device flags : Present Running Interface flags: Down Point-To-Point SNMP-Traps Internal: 0x4000 Link flags : Keepalives CoS queues : 4 supported, 4 maximum usable queues Last flapped : 2010-09-14 10:33:25 PDT (1w1d 06:40 ago) Input rate : 0 bps (0 pps) Output rate : 0 bps (0 pps) SONET alarms : None SONET defects : None