複数のコミット スクリプトを使用する場合の競合を回避する方法
複数のコミット スクリプトを使用する場合、各スクリプトは元の候補構成ファイルを評価します。あるスクリプトによる変更は、他のスクリプトでは評価されません。つまり、最初にスクリプトを構成に適用したときに、スクリプト間の競合が解決されない可能性があります。コミット スクリプトは、図 1 に示すように、 階層レベルでリストされている順序で[edit system scripts commit]
実行されます。

コミット スクリプト間の競合の例として、コミット スクリプト A.xsl を作成して、デバイスが IP アドレス 192.168.0.255 を持つドメイン名サーバーを使用するようにするとします。その後、DNS サーバーのアドレスが 192.168.255.255 に変更され、2 つ目のスクリプト B.xsl が追加され、デバイスがそのアドレスを持つ DNS サーバーを使用していることを確認します。ただし、スクリプト A.xsl は削除または無効ではありません。
各コミット スクリプトは元の候補構成を評価するため、 A.xsl と B.xsl の両方のスクリプトを実行する最終的な結果は、元の候補構成で構成された DNS サーバー アドレスによって異なります。現在古いアドレスの 192.168.0.255 が構成されている場合、スクリプト B.xsl は 192.168.255.255 に変更します。ただし、正しいアドレス 192.168.255.255 が構成されている場合、スクリプト A.xsl は不正な値 192.168.0.255 に変更します。
コミットスクリプト間の競合の可能性がある別の例として、コミットスクリプトが 属性を使用して階層を protect
保護しているとします。2つ目のコミットスクリプトが階層または階層内のステートメントを変更または削除しようとすると、Junos OSはコミットプロセス中に警告を発行し、設定変更を防ぎます。
例で説明したようなスクリプト間に競合が起こらないように注意してください。永続的な変更との競合を確認する方法として、2 つの個別 commit
のコマンドを発行できます。