このページで
コンフィグレットコンテキスト
場合によっては、スクリプトやCLIコンフィグレットの実行が必要になる場合があります。たとえば、「インターフェイスの無効化」スクリプトの実行範囲を、有効になっているインターフェイスだけに制限する必要がある場合があります。スクリプトやコンフィグレットに関連するコンテキストを持つことで、スコープを制限するというこの問題が解決します。要素のコンテキストは、基本的に一意のパスであり、デバイスXML内のXMLに対応します。
コンテキスト関連の計算では、デバイスと呼ばれる1つのノードの下に、フェッチされたXMLSを統合します。これには、構成 XML、インターフェイス情報 XML、シャーシインベントリ XML、システム情報 XML が含まれます。
デバイスの XML の例を次に示します。
<device> <interface-information>.....</interface-information> <system-information>.....</system-information> <chassis-inventory>.....</chassis-inventory> <configuration>....</configuration> .... </device>
表 1 は、デバイスの CLI から XML を表示するコマンドを示しています。
XML タイプ |
コマンド |
---|---|
シャーシ インベントリ |
>ショーシャーシハードウェア |xmlを表示 |
インターフェイス情報 |
インターフェイスを表示> |xmlを表示 |
構成 |
> show configuration |xmlを表示 |
システム情報 |
- |
システム情報 XML 用の コマンドは使用できません。システム情報 XML のインスタンスは次のとおりです。
<system-information> <hardware-model>ex4200-24t</hardware-model> <os-name>junos-ex</os-name> <os-version>11.3R2.4</os-version> <serial-number>ABCDE12345</serial-number> <host-name>ex-device1</host-name> <virtual-chassis/> </system-information>
要素のコンテキスト
スクリプトやコンフィグレットの実行を特定の目的の要素に制限する機能が必要です。たとえば、「インターフェイスを無効にする」スクリプトの実行範囲を、有効になっているインターフェイスのみに制限する必要がある場合があります。スクリプトやコンフィグレットに関連付けられたコンテキストを持つことで、このスコーピングの問題が解決します。
要素のコンテキストは、デバイス XML 内の要素を表す XML ノードにマップする XPath です。 表 2 は、参照される要素、XML、およびコンテンツ パスのタイプを示しています。
要素タイプ |
XML を参照 |
コンテキストパス |
---|---|---|
デバイス |
N/a |
/デバイス |
物理インベントリ要素 |
シャーシ インベントリ |
/device/chassis-inventory/* |
物理インターフェイス |
インターフェイス情報 |
/device/interface-information/* |
論理インターフェイス |
構成 |
/device/configuration/* |
表 3 は、さまざまな要素の XPath の例を示しています。
要素 |
コンテキスト |
説明 |
---|---|---|
デバイス |
/デバイス |
デバイスのコンテキスト |
シャーシ |
/device/chassis-inventory/chassis[name='Chassis'] |
シャーシのコンテキスト |
ルーティング エンジン |
/device/chassis-inventory/chassis[name='Chassis']/chassis-module[name='Routing Engine 0'] |
ルーティング エンジンのコンテキスト |
Fpc |
/device/chassis-inventory/chassis[name='Chassis']/chassis-module[name='FPC 1'] |
スロット1のFPCのコンテキスト |
写真 |
/device/chassis-inventory/chassis[name='Chassis']/chassis-module[name='FPC 1']/chassis-sub-module[name='PIC 4'] |
スロット 1 の FPC の下のスロット 4 の PIC のコンテキスト |
論理インターフェイス |
device/configuration/interfaces/interface[name='ge-0/0/1]/unit[name='0'] |
論理インターフェイス ge-0/0/1.0 のコンテキスト |
物理インターフェイス |
/device/interface-information/physical-interface[name='ge-0/1/1] |
物理インターフェイス ge-0/1/1 のコンテキスト |
コンテキストフィルタリング
スクリプトまたはコンフィグレットのコンテキスト属性は、適用可能な要素(インベントリ コンポーネント、論理インターフェイス、物理インターフェイス)を決定します。
スクリプトまたはコンフィグレットが要素に適用できるかどうかを確認するルールは次のとおりです。
デバイスXML上のスクリプトまたはコンフィグレットに関連付けられたコンテキストXPathを評価します。その結果、一連の XML ノードが作成されます。
結果の XML ノード リストに subject 要素を表す XML ノードが含まれている場合、スクリプト/テンプレート エンティティは一致すると見なされます。
スクリプトやコンフィグレットのコンテキストの例を以下に示します。
/device/chassis-inventory/chassis[name='Chassis']/chassis-module[starts-with(名前,'ルーティング エンジン')- すべてのルーティング エンジンに適用可能
/device/chassis-inventory/chassis[name='Chassis']/chassis-module[starts-with(名前,'FPC')] - すべてのFPCに適用可能
/device[starts-with(system-information/os-version,"11")/interface-information/physical-interface[starts-with(name,"ge")]- システムos-versionが11の「ge」タイプのすべてのインターフェイスに適用可能
/device/interface-information/physical-interface[admin-status="up"] - アップ状態の管理ステータスを持つすべての物理インターフェイスに適用されます。
/device/chassis-inventory/chassis[name='Chassis']/chassis-module
[starts-with(名前,'FPC')/chassis-sub-module[starts-with(name,'PIC')] |/
デバイス/chassis-inventory/chassis[name='Chassis']/chassis-module
[starts-with(名前,'FPC')/chassis-sub-module[starts-with(名前,'MIC')]
/chassis-sub-sub-module[starts-with(name,'PIC')] - すべての PIC に適用可能
スクリプトのスコープを PIC として指定する場合、PIC が取ることができる 2 つの異なる XPath を考慮する必要があります(1 つは MIC の間に、もう 1 つは含まない)。両方のXPathをOR組み合わせにする必要があります。
スクリプトまたはコンフィグレットにコンテキストが関連付けられていない場合、スクリプトのコンテキストは/deviceとして取得されます。これらのスクリプトやコンフィグレットは、デバイスで実行するためにリストされます。
CLI コンフィグレットが XPath 処理を必要としない場合にのみ、200 を超えるデバイスで CLI コンフィグレットを実行できます。XPath 処理を必要としない CLI コンフィグレットには、デバイス固有またはエンティティ固有のパラメーターのない CLI Configlets や、コンテキストとして /, // または /device があります。
Physical Interface Example
次のデバイス XML を検討してください。
<device> <interface-information> <physical-interface> <name>ge-0/0/0</name> <admin-status>up</admin-status> .... </physical-interface> <physical-interface> <name>ge-0/0/1</name> <admin-status>down</admin-status> .... </physical-interface> ..... </interface-information> .... <!-- ALL THE OTHER NODES --> .... </device>
Context of an element
物理インターフェイスge-0/0/0のコンテキストは/device/interface-information/physical-interface[name='ge-0/0/0']
この XPath は以下のノードにマッピングされます。これはインターフェイスge-0/0/0のXMLに対応します
<physical-interface> <name>ge-0/0/0</name> <admin-status>up</admin-status> .... </physical-interface>
Physical Interface in “up” state:
ユーザーがインターフェイスがアップしている場合にインターフェイスの管理ステータスをダウンに設定する設定を書きたい場合、スクリプトのコンテキストを/device/interface-information/physical-interface[admin-status='up'] として設定できます。
この設定は、管理者ステータスがアップしたインターフェイスでのみ有効になります。この例では、ge-0/0/0が上記の条件を満たしているので、このコンフィグレットを実行できます。