Junosデバイス設定時のJunos PyEZエラーのトラブルシューティング
以下のセクションでは、Junos PyEZ を使用して Junos デバイスを設定する際に発生する可能性のあるエラーの概要を説明します。これらのセクションでは、各エラーの潜在的な原因と解決策も示します。
タイムアウトエラーのトラブルシューティング
問題
説明
Junos PyEZ コードによって RpcTimeoutError メッセージまたはTimeoutExpiredError メッセージが生成され、デバイス設定の更新に失敗します。
RpcTimeoutError(host: dc1a.example.com, cmd: commit-configuration, timeout: 30)
原因
NETCONF RPCがタイムアウトするデフォルトの時間は30秒です。大規模な構成変更がこの値を超えると、構成をアップロードしてコミットする前に操作がタイムアウトする可能性があります。
ソリューション
デフォルトのタイムアウト間隔よりも長いコミット時間が必要になる可能性がある設定変更に対応するには、タイムアウト間隔を適切な値に設定し、コードを再実行します。間隔を設定するには、プロパティをDevice
timeout
適切な値に設定するか、デバイスで設定データを読み込んでコミットするときに、 または set()
メソッドに引数commit()
を含めtimeout=seconds
ます。例えば:
dev = Device(host="host") dev.open() dev.timeout = 300 with Config(dev, mode='exclusive') as cu: cu.load(path='junos-config.conf', merge=True) cu.commit(timeout=360) dev.close()
設定ロックエラーのトラブルシューティング
問題
説明
Junos PyEZコードは、設定をロックできないことを示すロックエラーメッセージを生成します。
LockError(severity: error, bad_element: None, message: configuration database modified)
原因
構成ロック エラーは、次の理由で発生する可能性があります。
別のユーザーが構成を排他ロックしています。
-
共有構成データベースには、コミットされていない変更があります。
Junos PyEZコードを実行しているユーザーには、デバイスを設定する権限がありません。
ソリューション
別のユーザーが設定に排他ロックを設定した場合、または設定を変更した場合は、ロックが解除されるか変更がコミットされるまで待ってから、コードを再実行してください。問題の原因が、デバイスを構成する権限がユーザーないことである場合は、必要な権限を持つユーザーでプログラムを実行するか、必要に応じて、変更を行うために必要な権限を現在のユーザーに付与するように Junos デバイスを設定します。
設定変更エラーのトラブルシューティング
問題
説明
Junos PyEZ コードは、パーミッションの問題により設定を変更できないことを示す ConfigLoadError メッセージを生成します。
ConfigLoadError(severity: error, bad_element: scripts, message: permission denied)
原因
このエラー メッセージは、Junos PyEZ コードを実行するユーザーが、設定を変更する権限はあるが、設定の必要な部分を変更する権限を持っていない場合に生成されることがあります。
ソリューション
必要なパーミッションを持つユーザーでプログラムを実行するか、必要に応じて、変更を行うために必要なパーミッションを現在のユーザーに付与するように Junos デバイスを設定します。