Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

コミット操作中のコミット スクリプトの実行を制御する

コミット スクリプトは、デバイスのハード ディスクの /var/db/scripts/commit ディレクトリまたは /config/scripts/commit ディレクトリのフラッシュ ドライブに保存されます。Junos OS スーパーユーザー ログイン クラスのユーザーのみが、これらのディレクトリ内のファイルにアクセスおよび編集できます。スクリプトの保存場所の設定については、「 Junos 自動化スクリプトの保存と有効化 」および「 フラッシュ メモリでのスクリプトの保存」を参照してください。

ファイル名が 階層レベルに含まれていない限り、コミットスクリプトはコミット操作中に実際に [edit system scripts commit file] 実行されません。スクリプトファイル名を設定する場合、SLAX(.slax)およびPython(.py)スクリプトに適したファイル名拡張子を含める必要があります。XSLT スクリプトはファイル名拡張子を必要としませんが、明確にするために .xsl 拡張子を追加することを強くお勧めします。コミット スクリプトの実行を防止するには、その階層レベルでコミット スクリプトのファイル名を削除します。

デフォルトでは、 階層レベルに [edit system scripts commit file] 含まれるすべてのスクリプトがコミットスクリプトディレクトリに実際に存在しない限り、コミット操作は失敗します。スクリプトが欠落している場合でもコミット操作を成功させるためには、 階層レベルに optional ステートメントを [edit system scripts commit file filename] 含めます。たとえば、コミットスクリプトディレクトリから削除してすぐに削除する必要があると予想される場合、階層レベルで [edit system scripts commit file] コミットスクリプトファイル名を削除しない場合、スクリプトをオプションとしてマークすることができます。後でスクリプトの使用を有効にするには、コミットスクリプトディレクトリ内のファイルを置き換えるだけです。

注意:

階層レベルに ステートメントをoptional[edit system scripts commit file filename]含めると、ファイルが存在しない場合、コミット操作中にエラーメッセージは生成されません。その結果、期待どおりにスクリプトが実行されていないことに気付かないかもしれません。

および 設定モードコマンドを発行することで、コミットスクリプトをdeactivate activate 無効化および再有効化することもできます。コミット スクリプトを非アクティブにすると、設定で非アクティブとマークされ、コミット操作中は実行されません。コミット スクリプトを再有効化すると、コミット操作中にスクリプトが再度実行されます。

デバイスで現在有効になっているコミット スクリプトを確認するには、 コマンドを show 使用して、 階層レベルで設定されたファイルを [edit system scripts commit] 表示します。有効なファイルがデバイス上にあるようにするには、 運用モードコマンドを使用して /var/run/scripts/commit/ directoryの内容を file list /var/run/scripts/commit リストします。

コミット操作中にコミット スクリプトを実行できるようにする

コミット操作中に実行するコミットスクリプトを設定するには:

  1. コミット スクリプトが正しいディレクトリに配置されていることを確認します
    • /var/db/scripts/ハードディスクのコミット ディレクトリ

    • /config/scripts/フラッシュ ドライブ上のコミット ディレクトリ

    スクリプトの保存場所の詳細については、「 Junos 自動化スクリプトの保存と有効化 」および「 フラッシュ メモリでのスクリプトの保存」を参照してください。

  2. 階層レベルで ステートメントを含めることで、 file filename コミットスクリプトを [edit system scripts commit] 有効にします。コミット スクリプトを有効にできるのは、Junos OS super-user ログイン クラスに属するユーザーのみです。
    • filename-コミットスクリプトの名前。

    • optionalスクリプトファイルがスクリプトディレクトリに存在しない場合は、コミット操作を有効にします。このステートメントを省略すると、スクリプトが存在しない場合、コミット操作は失敗します。

  3. 符号なしPythonスクリプトの場合、以下の要件を満たしていることを確認します。
    • ファイル所有者は、Junos OS super-user ログイン クラスの root またはユーザーのいずれかです。

    • ファイルの所有者のみが、ファイルの書き込み権限を持っています。

    • language pythonまたは language python3 ステートメントは 階層レベルで設定されています[edit system scripts]

    メモ:

    Junos OSリリース16.1R3以降、Pythonスクリプトは、Junos OSスーパーユーザーログインクラスのルートまたはユーザーが所有できます。Junos OS リリース 16.1R2 以降では、Python スクリプトは root ユーザーが所有する必要があります。

  4. 設定をコミットします。

コミット操作中にコミット スクリプトが実行されないようにする

設定の階層から [edit system scripts commit] スクリプトのファイル名を削除することで、コミット操作中にコミットスクリプトが実行されないようにすることができます。

メモ:

また、 ステートメントを deactivate 使用して、スクリプトのファイル名を設定から削除する代わりに、スクリプトを無効化することもできます。非アクティブ化されたスクリプトは、後で再有効化できます。

コミット操作中にコミット スクリプトが実行されないようにするには、次の手順に示します。

  1. コンフィギュレーションの 階層レベルで [edit system scripts commit] コミットスクリプトのファイル名を削除します。
  2. 変更をコミットします。
  3. (オプション)デバイス上のコミットスクリプトディレクトリからコミットスクリプトを削除します。

    コミット スクリプト ディレクトリからコミット スクリプトを削除する必要はありませんが、システムから未使用のファイルを削除するのは常に良いポリシーです。

コミット スクリプトの無効化

コミット スクリプトを無効化すると、そのスクリプトは設定内で と inactive マークされ、コミット操作中は無視されます。activate ステートメントを使用して、スクリプトを再活性化できます。

コミット操作中にコミットスクリプトが実行されないよう、コミットスクリプトを無効にするには:

  1. コマンドを deactivate 発行します。
  2. 変更をコミットします。
  3. コミットスクリプトが無効化されていることを確認します。

コミット スクリプトのアクティブ化

コミット スクリプトを無効化すると、そのスクリプトは設定で非アクティブとマークされるため、コミット操作中は実行されません。

非アクティブなコミットスクリプトをアクティブにするには:

  1. コマンドを activate 発行します。
  2. 変更をコミットします。
リリース履歴テーブル
リリース
説明
16.1R3
Junos OSリリース16.1R3以降、Pythonスクリプトは、Junos OSスーパーユーザーログインクラスのルートまたはユーザーが所有できます。