Junosデバイスの設定時に発生するAnsibleエラーのトラブルシューティング
以下のセクションでは、コレクション内のモジュールまたはjuniper_junos_config
ロール内のJuniper.junos
juniper.device
モジュールを使用して config
Junos デバイスを構成するときに発生する可能性のあるエラーの概要を説明します。これらのセクションでは、各エラーの潜在的な原因と解決策も示します。
設定タイムアウトエラーのトラブルシューティング
問題
説明
モジュールはエラー メッセージを生成し TimeoutExpiredError
、デバイス設定の更新に失敗します。
ncclient.operations.errors.TimeoutExpiredError: ncclient timed out while waiting for an rpc reply
原因
NETCONF RPCがタイムアウトするデフォルトの時間は30秒です。大規模な構成変更がこの値を超えると、構成をアップロードしてコミットする前に操作がタイムアウトする可能性があります。
ソリューション
既定の RPC タイムアウト間隔よりも長いコミット時間が必要になる可能性がある構成の変更に対応するには、モジュールの引数を timeout
適切な値に設定し、プレイブックを再実行します。
設定ロックエラーのトラブルシューティング
問題
説明
モジュールは、構成データベースをロックできないことを示すエラー メッセージを生成します。例えば:
FAILED! => {"changed": false, "msg": "Unable to open the configuration in exclusive mode: LockError(severity: error, bad_element: None, message: configuration database modified)"}
または
FAILED! => {"changed": false, "msg": "Unable to open the configuration in exclusive mode: LockError(severity: error, bad_element: lock-configuration, message: permission denied)"}
原因
構成ロック エラーは、次の理由で発生する可能性があります。
-
別のユーザーが構成を排他ロックしています。
-
別のユーザーが構成データベースに変更を加えましたが、まだ変更をコミットしていません。
-
Ansibleモジュールを実行しているユーザーには、デバイスを構成する権限がありません。
ソリューション
メッセージ文字列は通常 LockError
、問題の根本原因を示します。別のユーザーが設定に排他ロックを持っている場合、または設定を変更した場合は、ロックが解除されるか、変更がコミットされるまで待ってから、プレイブックを再度実行します。問題の原因がユーザーにデバイスを構成する権限がないことである場合は、必要な権限を持つユーザーでプレイブックを実行するか、必要に応じて、変更を行うために必要な権限を現在のユーザーに付与するようにJunosデバイスを設定します。
設定読み込みエラーのトラブルシューティング
問題
説明
モジュールは、 ConfigLoadError
アクセス許可が拒否されたため、構成を変更できないことを示すエラー メッセージを生成します。
FAILED! => {"changed": false, "msg": "Failure loading the configuraton: ConfigLoadError(severity: error, bad_element: scripts, message: error: permission denied)"}
原因
このエラー メッセージは、Ansibleモジュールを実行しているユーザーが、構成を変更する権限を持っているが、構成の要求されたセクションを変更する権限を持っていない場合に生成されます。
ソリューション
この問題を解決するには、必要な権限を持つユーザーでプレイブックを実行するか、必要に応じて、変更を行うために必要な権限を現在のユーザーに付与するように Junos デバイスを構成します。
コミット エラーのトラブルシューティング
問題
説明
モジュールは、 CommitError
コンフィギュレーション・ロック・エラーが原因でコミット操作が失敗したことを示すエラー・メッセージを生成します。
FAILED! => {"changed": false, "msg": "Unable to commit configuration: CommitError(edit_path: None, bad_element: None, message: error: remote lock-configuration failed on re0\n\nnote: consider using 'commit synchronize force' to\nterminate remote edit sessions and force the commit)"}
原因
構成ロック エラーは、「 構成ロック エラーのトラブルシューティング」で説明されている理由で発生する可能性があります。ただし、タスクがコミットチェックとコミット操作をリクエストし、コミットチェック操作が設定ロックを解除する前にデバイスがコミット操作を開始した場合、 の代わりに CommitError
LockError
の一部として設定ロック失敗メッセージが生成される場合があります。
ソリューション
デバイスがコミット チェック操作を完了し、コミット操作を開始する前に構成ロックを解放するのに十分な時間を確保するには、モジュールの check_commit_wait
パラメーターを適切な値に設定し、プレイブックを再実行します。値は check_commit_wait
、コミット チェックとコミット操作の間に待機する秒数です。
以下のサンプル タスクは、コミット チェックとコミット操作の間に 5 秒間待機します。
- name: "Load configuration. Wait 5 seconds between check and commit" juniper.device.config: load: "merge" format: "text" src: "build_conf/{{ inventory_hostname }}/junos.conf" check_commit_wait: 5 comment: "updated using Ansible"