カスタム構文を読み取り、関連する設定ステートメントを生成するためのコミットスクリプトマクロを作成する
コミットスクリプトマクロを使用すると、カスタム設定構文を標準的なJunos OS設定ステートメントに展開できます。それ自体では、ステートメント内の apply-macro
カスタム構文は、デバイスに運用上の影響を与えるわけではありません。構文を意味するには、関連するJunos OSステートメントを生成するためのデータとしてシンタックスを使用する対応するコミットスクリプトが必要です。
このようなスクリプトを作成するには::
- スクリプトの開始時に、コミット スクリプトに必要な定型プレートから適切 なコミット スクリプト定型を含めます。ここでは便宜のために再現されています。
XSLT 定型プレート
<?xml version="1.0" standalone="yes"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:junos="http://xml.juniper.net/junos/*/junos" xmlns:xnm="http://xml.juniper.net/xnm/1.1/xnm" xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0"> <xsl:import href="../import/junos.xsl"/> <xsl:template match="configuration"> <!-- ... insert your code here ... --> </xsl:template> </xsl:stylesheet>
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 configuration { /* * insert your code here */ }
from junos import Junos_Configuration import jcs if __name__ == '__main__': # insert your code here
- コメント「insert your code here」が示す位置には、指定された階層レベルで ステートメントの設定を検査し、標準Junos OS構文を
apply-macro
含むように設定を変更するプログラミング手順を含めます。両方のタイプの命令を使用し、XSLT 構文の行ごとの分析を含む例については、「 例: コミット スクリプト マクロを使用したカスタム構成構文の作成」を参照してください。
- スクリプトにわかりやすい名前を付けて保存します。
- スクリプトをハード ディスクの /var/db/scripts/commit ディレクトリまたはフラッシュ ドライブの /config/scripts/commit ディレクトリにコピーします。
コミット スクリプトの保存場所の設定については、 フラッシュ メモリでの Junos 自動化スクリプトの保存と有効化 と スクリプトの保存を参照してください。
- 階層レベルで ステートメントを設定して、
file filename
スクリプトを[edit system scripts commit]
有効にします。[edit system scripts] user@host# set commit file filename
- スクリプトが一時変更を行う場合は、 階層レベルに
allow-transients
ステートメントを[edit system scripts commit]
含めます。[edit system scripts] user@host# set commit allow-transients
- スクリプトが Python で記述されている場合は、符号なし Python スクリプトの実行を有効にします。
[edit system scripts] user@host# set language (python | python3)
- 設定をコミットします。
[edit system scripts] user@host# commit and-quit
すべてのコミットスクリプトがエラーなしで実行された場合、永続的な変更は候補構成にロードされ、一時的な変更はチェックアウト構成に読み込まれますが、候補となる設定には読み込まれません。その後、コミットプロセスは、設定を検証し、Junos OSを実行するデバイス上の影響を受けるプロセスに変更を反映させることで続行します。