Junos OS 自動化スクリプトで拡張機能を使用する
Junos OS は、Junos OS を実行するデバイスでより簡単にスクリプティング タスクを実行できるように、コミット、op、イベント、SNMP スクリプトで使用できる拡張機能を提供します。次のセクションでは、さまざまなスクリプト言語の拡張機能をインポートして使用する方法について概要を説明します。
SLAX および XSLT スクリプトでの拡張関数の使用
SLAX スクリプトおよび XSLT スクリプトで拡張機能を使用するには、スタイル シート宣言で、適切な名前空間 の統一リソース識別子 (URI) を宣言する必要があります。Junos OS を実行するデバイスに固有の機能を持つ Junos OS 拡張機能は、関連する URI http://xml.juniper.net/junos/commit-scripts/1.0 で名前空間で定義されます。SLAX 拡張関数は、関連する URI http://xml.libslax.org/slax を使用して名前空間で定義されます。
SLAX スクリプトと XSLT スクリプトは通常、標準の jcs
XSLT 関数およびユーザー定義テンプレートとの名前の競合を回避するために、または slax
プレフィックスを対応する URI にマッピングします。その後、スクリプトは、処理中に関連する URI 参照に展開される、適切なプレフィックスで拡張機能を修飾します。
例えば、以下の SLAX 名前空間ステートメントは、自動化スクリプトで使用される Junos OS 拡張機能を定義する名前空間 URI にプレフィックスをマッピング jcs
します。
ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0";
次の SLAX 名前空間ステートメントは、 slax
SLAX 拡張関数を定義する名前空間 URI にプレフィックスをマッピングします。
ns slax = "http://xml.libslax.org/slax";
SLAX または XSLT スクリプトで拡張機能を呼び出す場合は、必要な変数宣言を含め、必要に応じて または slax:function-name()
を使用して関数をjcs:function-name()
呼び出し、必要な引数またはオプションの引数を渡します。引数は、関数定義で指定された正確な順序で関数に渡される必要があります。これは、パラメータが名前で割り当てられ、任意の順序で表示できるテンプレートとは異なります。拡張機能関数の戻り値は、常に変数に割り当てるか、出力として指定する必要があります。
次の例では、 jcs
URI http://xml.juniper.net/junos/commit-scripts/1.0 によって識別される名前空間にプレフィックスをマッピングしています。その後、スクリプトは 1 つの引数で関数を jcs:invoke()
呼び出します。
XSLT 構文
<?xml version=”1.0”?> <xsl:stylesheet version=”1.0” xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0"> ... <xsl:variable name="result" select="jcs:invoke('get-software-information')"/> ... </xsl: stylesheet>
SLAX 構文
version 1.0; ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0"; ... var $result = jcs:invoke('get-software-information'); ...
次の例では、 slax
URI http://xml.libslax.org/slax によって識別される名前空間にプレフィックスをマッピングしています。次に、スクリプトは 1 つの文字列引数で slax:get-input()
関数を呼び出します。ステートメントは version
、Junos OSリリース12.2以降のリリースでサポートされているSLAX言語のバージョン1.1を指定します。
SLAX 構文
version 1.1; ns slax = "http://xml.libslax.org/slax"; ... var $input = slax:get-input($prompt); ...
Python スクリプトでの拡張機能の使用
モジュールをインポート jcs
する Python 自動化スクリプトでは、サポートされている Junos OS および SLAX 拡張機能の Python バージョンを使用できます。Python スクリプトでサポートされている拡張関数を確認するには、 Junos OS 自動化スクリプトの拡張機能についてを参照してください。
Python スクリプトで同等の拡張関数を呼び出す場合は、 ステートメントと必要な変数宣言を含 import jcs
め、 、 を使用して関数を jcs.function_name()
呼び出し、必要な引数またはオプションの引数を渡します。Python スクリプトでは、拡張機能の名前はハイフンの代わりにアンダースコアを使用する必要があることに注意してください。例えば:
Python 構文
import jcs if __name__ == '__main__': name = jcs.get_input("Enter name: ") jcs.output(name)