コミットスクリプトに必要な定型文
概要 コミットスクリプトの定型文を定義します。
Junos OSコミットスクリプトは、XSLT(Extensible Stylesheet Language Transformations)、SLAX(Stylesheet Language Alternative SyntaX)、Pythonのいずれかで記述できます。コミット スクリプトには、スクリプトの基本的な機能だけでなく、Junos OS の拡張機能や名前付きテンプレートなど、スクリプト内で使用されるオプション機能の両方について、そのスクリプト言語に必要な定型文を含める必要があります。このトピックでは、XSLT、SLAX、および Python のコミットスクリプトで使用できる標準的な定型文を提供します。
SLAX および XSLT コミット スクリプトは、Junos XML と Junos XML プロトコル タグ要素をベースにしています。すべてのXML要素と同様に、山括弧は、開始タグと終了タグでJunos XMLまたはJunos XMLプロトコルタグ要素の名前を囲みます。これは XML 規則であり、角かっこは完全なタグ要素名の必須部分です。Junos OS CLIコマンド文字列のオプション部分を示すためにドキュメントで使用されている山括弧と混同しないでください。
コミットスクリプトの XSLT 定型文
XSLT コミットスクリプトの定型文は次のとおりです。
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="configuration"> <!-- ... insert your code here ... --> 9 </xsl:template> 10 </xsl:stylesheet>
1 行目は Extensible Markup Language (XML) 処理命令 (PI) です。この PI は、コードがバージョン 1.0 を使用して XML で記述されることを指定します。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 ステートメントです。テンプレートと変数を として参照されるファイルから読み込みます 。/import/junos.xsl。Junos OS の一部として出荷されます。 junos.xsl ファイルには、スクリプトで呼び出すことができる名前付きテンプレートのセットが含まれています。これらの名前付きテンプレートについては、 Junos OS自動化スクリプトの名前付きテンプレートについてで説明しています。
7 <xsl:import href="../import/junos.xsl"/>
8行目は、junos.xslインポートファイルに含まれる<xsl:template match="/">テンプレートで選択されたノードである<configuration>要素に一致するテンプレートを定義しています。<xsl:template match="configuration"> 要素により、スクリプト内のすべての XPath 式から/configuration/ルート要素を除外し、最上位の Junos OS 階層レベルで XPath 式を開始することができます。詳細については、「XPath の概要」を参照してください。
8 <xsl:template match="configuration">
8 行目と 9 行目の間にコードを追加します。
9 行目でテンプレートを閉じます。
9 </xsl:template>
10 行目で、スタイルシートとコミットスクリプトを閉じます。
10 </xsl:stylesheet>
コミットスクリプトのSLAXボイラープレート
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";
import "../import/junos.xsl";
match configuration {
/*
* insert your code here
*/
}
コミットスクリプトのPythonボイラープレート
Python コミットスクリプトには必須の定型文はありませんが、スクリプトで使用されているオブジェクトをインポートする必要があります。Python コミット スクリプトは、以下をインポートできます。
Junos_Contextdictionary - スクリプト実行環境に関する情報が含まれます。Junos_Configurationobject:継承後の候補コンフィギュレーションが含まれます。jcslibrary—スクリプトで Junos OS 拡張機能と Junos OS 名前付きテンプレート機能をスクリプトで使用できるようにします。jnpr.junosモジュールとクラス—スクリプトでJunos PyEZを使用できるようにします。
例えば:
from junos import Junos_Context from junos import Junos_Configuration from jnpr.junos import Device import jcs if __name__ == '__main__':
Python 自動化スクリプトでは、スクリプトの先頭にインタープリター ディレクティブ行 (#!/usr/bin/env python) を含める必要はありません。ただし、存在する場合は、プログラムは引き続き正しく実行されます。