Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junosデバイス管理時のAnsible接続エラーのトラブルシューティング

以下のセクションでは、Ansibleを使用してJunosデバイスを管理する際に発生する可能性のある接続エラーについて概説しています。これらのセクションでは、各エラーの潜在的な原因と解決策も示します。

接続の失敗または無効なエラーのトラブルシューティング

問題

形容

Junosデバイス上で juniper.device モジュールの実行中に、Ansible制御ノードがSSH接続の失敗または不明なコマンドに関するエラーを生成します。例えば:

又は

原因

これらのエラーは、モジュールがAnsible制御ノードでローカルに実行されていない場合に発生する可能性があります。

通常、Ansibleは管理対象ノードにPythonを必要とし、Ansible制御ノードはモジュールをノードに送信し、そこで実行してから削除します。ジュニパーネットワークスのモジュールは、Junos PyEZ と NETCONF 上の Junos XML API を使用してデバイスとインターフェイスするため、Junos デバイスに Python は必要ありません。そのため、Junosデバイスで操作を実行するには、PythonがインストールされているAnsible制御ノードでローカルにモジュールを実行する必要があります。AnsibleがJunosデバイス上で直接モジュールを実行しようとすると、エラーが発生します。

解決

juniper.deviceモジュールをローカルで実行するようにAnsible制御ノードに指示するには、Ansibleプレイブックにconnection: localを含めるか、個々のモジュールを実行するときに--connection localコマンドライン引数を含めます。例えば:

不明なホストエラーのトラブルシューティング

問題

形容

juniper.deviceモジュールの実行中に、Ansible制御ノードがConnectUnknownHostErrorエラーを生成します。

原因

ホストがAnsibleインベントリ ファイルで定義されていないか、Ansible制御ノードがホスト名を解決できません。

Ansibleモジュールを直接またはプレイブックから実行する場合、モジュール引数またはプレイブックで参照されるホストは、Ansibleインベントリ ファイルで定義する必要があります。インベントリ ファイルのデフォルトの場所は /etc/ansible/hosts です。インベントリ ファイルがホスト名を参照する場合、Ansible制御ノードはホスト名を解決できる必要があります。

解決

欠落しているホストを含むようにAnsibleインベントリ ファイルを更新し、DNS解決が正しく機能していることを確認します。

Ansibleインベントリ ファイルの詳細については、 Understanding the Ansible Inventory File When Managing Junos Devices および https://www.ansible.com/ にあるAnsibleの公式ドキュメントを参照してください。

接続拒否エラーのトラブルシューティング

問題

形容

juniper.deviceモジュールの実行中に、Ansible制御ノードがConnectRefusedErrorエラーを生成します。例えば:

原因

接続拒否エラーの原因として最も可能性が高いのは、JunosデバイスでSSH経由のNETCONFが有効になっていないことです。

NETCONF が有効になっているかどうかを迅速にテストするには、Ansible モジュールを実行しているユーザー アカウントがデバイスとの NETCONF セッションを正常に開始できることを確認します。

ユーザーがデフォルトのNETCONFポート(830)またはデバイス上のNETCONF用に特別に設定されたポートのいずれかでデバイスとのNETCONFセッションを正常に確立できる場合、NETCONFは有効になります。それ以外の場合は、デバイスでSSH経由のNETCONFを有効にする必要があります。

解決

JunosデバイスでNETCONF-over-SSHサービスを有効にします。