コミット スクリプト マクロを作成して、カスタム構文を読み取り、関連する設定ステートメントを生成します
コミット スクリプト マクロを使用すると、カスタム設定構文を標準の Junos OS 設定ステートメントに拡張できます。 apply-macro ステートメントのカスタム構文自体は、デバイスの運用に何の影響も与えません。構文に意味を持たせるためには、関連するJunos OSステートメントを生成するためのデータとして構文を使用する、対応するコミットスクリプトが必要です。
このようなスクリプトを作成するには、次のようにします。
- スクリプトの先頭に、「 コミットスクリプトに必要なボイラープレート」の適切なコミットスクリプトの定型文を含めます。便宜上、ここに再現します。
XSLT ボイラープレート
SLAX 定型文<?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>
Python ボイラープレート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 */ }from junos import Junos_Configuration import jcs if __name__ == '__main__': # insert your code here
- コメント「insert your code here」が示す位置に、指定された階層レベルで
apply-macroステートメントの設定を検査し、標準のJunos OS構文を含むように設定を変更するプログラミング命令を含めます。両方のタイプの命令を使用し、XSLT 構文の行ごとの分析を含む例については、「 例: コミット スクリプト マクロを使用したカスタム構成構文の作成」を参照してください。
- スクリプトをわかりやすい名前で保存します。
- スクリプトをハード ディスクの /var/db/scripts/commit ディレクトリまたはフラッシュ ドライブの /config/scripts/commit ディレクトリにコピーします。
コミット スクリプトの保存場所の設定については、 Junos 自動化スクリプトの保存と有効化 およびフラッシュ メモリへのスクリプトの保存を参照してください。
[edit system scripts commit]階層レベルでfile filenameステートメントを設定して、スクリプトを有効にします。[edit system scripts] user@host# set commit file filename
- スクリプトが一時的な変更を生成する場合は、
allow-transientsステートメントを設定します。[edit system scripts commit]階層レベルで ステートメントを設定して、すべてのコミットスクリプトが一時的な変更を行えるようにします。[edit system scripts] user@host# set commit allow-transients
または、サポートされているデバイスとリリースで、
[edit system scripts commit file filename]階層レベルで ステートメントを設定して、個々のスクリプトのみが一時的な変更を行えるようにします。[edit system scripts] user@host# set commit file filename allow-transients
- スクリプトが Python で記述されている場合は、署名されていない Python スクリプトの実行を有効にします。
[edit system scripts] user@host# set language (python | python3)
- 設定をコミットします。
[edit system scripts] user@host# commit and-quit
すべてのコミットスクリプトがエラーなしで実行された場合、永続的な変更は候補コンフィギュレーションにロードされ、一時的な変更はチェックアウトコンフィギュレーションにロードされますが、候補コンフィギュレーションにはロードされません。その後、コミット プロセスは、設定を検証し、Junos OS を実行しているデバイス上の影響を受けるプロセスに変更を伝播することで続行されます。