Python 自動化スクリプトを実行するデバイスで Python 自動化スクリプトを実行するためのJunos OS
Python スクリプト実行の要件
Python を使用して、コミット、イベントJunos OS、SNMP 自動化スクリプトの作成に使用できます。デフォルトでは、Python コードの不正実行を防止するために、デフォルトで python Junos OS を実行するデバイスは使用できません。変更されていない Python スクリプトを実行するには、オンボックス自動化スクリプトの通常の要件に加えて、以下の要件を満たす必要があります。
ファイルの所有者は、ユーザー ログイン クラスの root または
super-user
Junos OSのいずれかです。ファイルの所有者だけが、そのファイルに対する書き込み権限を持つ。
-
階層レベルで or ステートメントを設定すると、変更した Python スクリプト
language python
language python3
を実行[edit system scripts]
できます。メモ:language python3
このステートメントを設定した場合、デバイスは Python 3 を使用してこの Python バージョンをサポートするスクリプトを実行し、Python 2.7 を使用して、特定のバージョンの Python 3 をサポートしていないスクリプトをJunos OSします。詳細については、「 ネットワークで稼働しているデバイスの Python 自動化スクリプトについて 」をJunos OS。メモ:Evolved Release 21.2R1
language python
Junos OS、ステートメントは設定グループでデフォルトでjunos-defaults
設定されています。メモ:ファイルのユーザーまたはグループ クラスに属していないユーザーが、読み込んだ Python 自動化スクリプトを実行するには、スクリプトのファイル権限に、他のユーザーに対する読み取り権限を含める必要があります。
SLAX および XSLT 自動化スクリプトと同様、Python 自動化スクリプトはデバイスの適切なディレクトリに保存する必要があります。また、設定のスクリプト タイプに適した階層レベルの下でスクリプト ファイル名を設定して、個々のスクリプトを有効にする必要があります。自動化スクリプトの保存と有効化の詳細については、「 自動化スクリプト の保存と有効化 」Junos参照してください。
Python スクリプトの完全性を検証するためにチェックサムを設定することをお勧めします。ローカル スクリプトのチェックサムを指定するにはchecksum
[file filename]
、特定のタイプのスクリプトに階層内の ステートメントを設定します。リモート op スクリプトのチェックサムを指定するには、 key
コマンドを使用してスクリプトを実行する際に引数を含op url
める必要があります。Junos OS リリース 18.2R2 および 18.3R1 から、チェックサムが設定されていない、読み込み済みの Python スクリプトを実行した場合、Junos OS はシステム ログ ファイルに CSCRIPT_SECURITY_WARNING メッセージをログに記録します。例えば:
CSCRIPT_SECURITY_WARNING: unsigned python script '/var/db/scripts/op/sample.py' without checksum is executed
Python スクリプトのアクセス権限の設定
Junos OS Release 16.1R3 から、コミットスクリプトや op スクリプトなどのインタラクティブな Python スクリプトは、スクリプトを呼び出すコマンドまたは操作を実行するユーザーのアクセス権限を使用して実行します。デフォルトでは、イベントや SNMP スクリプトなどの非インタラクティブ Python スクリプトは、ユーザーとグループの権限を使用して実行されます nobody
。特定のユーザーのアクセス権限を使用してイベントまたは SNMP python-script-user username
[edit event-options event-script file filename]
[edit system scripts snmp file filename]
スクリプトを実行するには、イベント スクリプト用に階層レベルで ステートメントを設定し、SNMP [edit system login]
スクリプトの階層レベルで設定したユーザーを指定する必要があります。
例えば:
[edit event-options event-script] file filename { python-script-user username; }
[edit system scripts snmp] file filename { python-script-user username; }
Python イベントおよび SNMP スクリプトは、root アクセス権限を使用して実行する設定することはできません。
要件の変更の概要(リリース別)
最初のリリース Junos OS、16.1R3使用されていない Python スクリプトの所有およびアクセス権限の要件が変更されます。Junos OS リリース 16.1R2 以前のリリースでは、Python コミット、イベント、op、SNMP のスクリプトは権限を持つ必要があります。Junos OS は、root ユーザーが所有する必要があります。Junos OS は、一般的で恵まれない汎用システム アカウントである *nix nobody
ユーザーおよびグループのアクセス権限を使用してスクリプトを実行します。Junos OS リリース 16.1R3 から、変更した Python 自動化スクリプトはルート ユーザーまたは Junos OS super-user
ログイン クラスのユーザーのいずれかによって所有する必要があります。ファイルの書き込み権限を持つのはファイルの所有者のみです。さらに、Python 自動化スクリプトは、承認されたユーザーのアクセス権限を使用して実行できます。
表 1 は 、Veriexec 対応のさまざまなバージョンの Python 自動化スクリプトを実行するための要件Junos OS。
要件/制限 |
Junos OS リリース 16.1R2以前のリリース |
Junos OS リリース 16.1R3以降のリリース |
---|---|---|
ファイルの所有者 |
Root ユーザー |
ログイン クラス内の root ユーザー Junos OS |
ファイル書き込み権限 |
任意 |
ファイルの所有者のみ |
メモ:
Python 3 は、Python リリース Junos OS以降19.4R1でサポートされています。 |
はい |
はい |
スクリプトは、そのスクリプト タイプに対応する階層の下の設定で有効にする必要があります。 |
はい |
はい |
アクセス権限 |
すべての Python 自動化スクリプトは、ユーザーとグループのアクセス権限を使用して実行されます。 |
Python コミットおよび op スクリプトは、スクリプトを呼び出すユーザーのアクセス権限を使用して実行されます。 Python イベントおよび SNMP スクリプトは、ステートメントで設定されたユーザーのアクセス権限を使用して実行 |