運用スクリプトに必要な定型プレート
概要 運用スクリプトの定型プレートを定義します。
Junos OS op スクリプトは、XSLT(Extensible Stylesheet Language Transformations)、Stylesheet Language Alternative syntaX(SLAX)、または Python で記述できます。Op スクリプトには、基本的なスクリプト機能と、Junos OS 拡張機能や名前付きテンプレートなどのスクリプト内で使用されるオプション機能の両方に、そのスクリプト言語に必要な定型文を含める必要があります。このトピックでは、XSLT、SLAX、Python op スクリプトで使用できる標準定型プレートを提供します。
SLAX および XSLT op スクリプトは、Junos XML および Junos XML プロトコル タグ要素をベースとしています。すべての XML 要素と同様に、山括弧は Junos XML または Junos XML プロトコル タグ要素の名前を開始タグと終了タグで囲みます。これは XML 表記規則であり、角括弧は完全なタグ要素名の必須部分です。これらは、Junos OS CLI コマンド文字列のオプション部分を示すためにドキュメントで使用されている山括弧と混乱することはありません。
運用スクリプト用 XSLT 定型プレート
XSLT op スクリプト定型プレートは次のとおりです。
1 <?xml version="1.0" standalone="yes"?> 2 <xsl:stylesheet version="1.0" 3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 4 xmlns:junos="http://xml.juniper.net/junos/*/junos" 5 xmlns:xnm="http://xml.juniper.net/xnm/1.1/xnm" 6 xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0"> 7 <xsl:import href="../import/junos.xsl"/> 8 <xsl:template match="/"> 9 <op-script-results> <!-- ... insert your code here ... --> 10 </op-script-results> 11 </xsl:template> <!-- ... insert additional template definitions here ... --> 12 </xsl:stylesheet>
1 行目は、このファイルを XML としてマークし、XML のバージョンを 1.0 として指定する XML(Extensible Markup Language)処理命令(PI)です。XML PI(存在する場合)は、スクリプトファイル内の最初のコメント以外のトークンである必要があります。
1 <?xml version="1.0"?>
2 行目はスタイル シートを開き、XSLT バージョンを 1.0 として指定します。
2 <xsl:stylesheet version="1.0"
3~6行目は、運用スクリプトで一般的に使用されるすべての名前空間マッピングをリストアップしています。この例では、これらのプレフィックスがすべて使用されているわけではありませんが、参照されていない名前空間マッピングの一覧表示はエラーではありません。すべての名前空間マッピングをリストすると、マッピングがスクリプトの新しいバージョンで使用される場合、エラーを防ぐことができます。
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 4 xmlns:junos="http://xml.juniper.net/junos/*/junos" 5 xmlns:xnm="http://xml.juniper.net/xnm/1.1/xnm" 6 xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0">
7 行目は XSLT インポート ステートメントです。これは、 として参照されるファイルからテンプレートと変数を読み込みます 。/import/junos.xsl:Junos OSの一部として出荷されます( ファイル/usr/libdata/cscript/import/junos.xsl内)。 junos.xsl ファイルには、スクリプトで呼び出すことができる名前付きテンプレートのセットが含まれています。これらの名前付きテンプレートについては、 Junos OS 自動化スクリプトの名前付きテンプレートについてを参照してください 。
7 <xsl:import href="../import/junos.xsl"/>
8 行目は、要素に一致するテンプレートを </>
定義します。 <xsl:template match="/">
要素はルート要素であり、XML 階層の最上位レベルを表します。スクリプト内のすべての XPath 式は、最上位レベルから開始する必要があります。これにより、スクリプトは、すべての可能な Junos XML および Junos XML プロトコルリモート プロシージャ コール(RPC)にアクセスできます。詳細については、 XPath の概要を参照してください。
8 <xsl:template match="/">
タグ要素の <xsl:template match="/">
後、 <op-script-results>
および </op-script-results>
コンテナタグは、行9と10に示すようにトップレベルの子タグである必要があります。
9 <op-script-results> <!-- ... insert your code here ... --> 10 </op-script-results>
11行目はテンプレートを閉じます。
11 </xsl:template>
11 行目と 12 行目の間で、テンプレート内から呼び出される追加の XSLT テンプレートを <xsl:template match="/">
定義できます。
12行目は、スタイルシートとopスクリプトを閉じます。
12 </xsl:stylesheet>
運用スクリプト用 SLAX 定型プレート
対応するSLAX opスクリプト定型プレートは次のとおりです。
version 1.0; 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"; import "../import/junos.xsl"; match / { <op-script-results> { /* * Insert your code here */ } }
運用スクリプト用 Python ボイラープレート
Python op スクリプトには必須の定型文はありませんが、スクリプトで使用されているオブジェクトをインポートする必要があります。Python op スクリプトは、以下をインポートできます。
Junos_Context
辞書 — スクリプト実行環境に関する情報が含まれます。jcs
ライブラリ — スクリプトで、Junos OS 拡張機能と Junos OS 名前付きテンプレート機能を使用できるようにします。jnpr.junos
モジュールとクラス — スクリプトで Junos PyEZ を使用できるようにします。
例えば:
from junos import Junos_Context from jnpr.junos import Device import jcs if __name__ == '__main__':
Python 自動化スクリプトは、スクリプトの先頭にインタープリター指令行(#!/usr/bin/env python
)を含める必要はありません。ただし、プログラムが存在する場合、プログラムは正しく実行されます。