Python コミット スクリプトにおける永続的または一時的な設定変更の生成
Junos OS コミット スクリプトは、カスタム設定ルールを適用し、カスタム設定ルールに準拠していない場合に設定を自動的に変更できます。Python コミット スクリプトを使用して永続的または 一時的な変更 を生成するには、
その結果、MPLS プロトコル ファミリーが有効になっていない SONET/SDH インターフェイスを検索し、 ステートメントを階層レベルで[edit interfaces so-fpc/pic/port unit logical-unit-number]
永続的な変更として追加family mpls
し、設定が変更されたことを示す警告メッセージを出力します。
from junos import Junos_Configuration import jcs def main(): # Get configuration root object root = Junos_Configuration for element in root.xpath("./interfaces/ \ interface[starts-with(name,'so-')]"): if element.find('unit/family/mpls') is None: if_name = element.find('name').text unit_name = element.find('unit/name').text change_xml = """ <interfaces> <interface> <name>{0}</name> <unit> <name>{1}</name> <family> <mpls> </mpls> </family> </unit> </interface> </interfaces> """.format(if_name, unit_name).strip() jcs.emit_change(change_xml, "change", "xml") jcs.emit_warning("Adding 'family mpls' to SONET interface: " + if_name) if __name__ == '__main__': main()
すべての有効なコミット スクリプトがエラーなしで実行される場合、永続的な変更は候補構成にロードされ、一時変更はチェックアウト構成に読み込まれますが、 候補の構成には読み込まれません。その後、コミットプロセスは、設定を検証し、デバイス上の影響を受けるプロセスに変更を反映させることで続行します。
永続的な変更と一時的な変更の両方が適用された設定を表示するには、 設定モードコマンドを show | display commit-scripts
発行します。
[edit] user@host# show | display commit-scripts
永続的な変更のみが適用された設定を表示するには、 設定モードコマンドを show | display commit-scripts no-transients
発行します。
[edit] user@host# show | display commit-scripts no-transients
永続的および一時変更は、設定モード コマンドが受信設定を読み込むのload replace
と同じ方法で設定に読み込まれます。永続的または一時的な変更を生成する場合、構成要素に属性を追加replace="replace"
すると、操作のload replace
タグとreplace:
同じ動作が生成されます。永続的な変更と一時的な変更の両方が、動作とともに設定にload replace
読み込まれます。ただし、永続的な変更は候補構成に読み込まれ、一時変更はチェックアウト構成に読み込まれます。