Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

複数のコミット スクリプトを使用する場合の競合を回避する方法

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

図 1:複数のコミット スクリプト Configuration Evaluation by Multiple Commit Scriptsによる設定評価

コミット スクリプト間の競合の例として、コミット スクリプト A.xsl を作成して、デバイスが IP アドレス 192.168.0.255 を持つドメイン名サーバーを使用するようにするとします。その後、DNS サーバーのアドレスが 192.168.255.255 に変更され、2 つ目のスクリプト B.xsl が追加され、デバイスがそのアドレスを持つ DNS サーバーを使用していることを確認します。ただし、スクリプト A.xsl は削除または無効ではありません。

各コミット スクリプトは元の候補構成を評価するため、 A.xslB.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 のコマンドを発行できます。