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 Juniper.junos モジュールの実行中に、Ansible制御ノードがSSH接続の失敗または不明なコマンドに関するエラーを生成します。例えば:

または

原因

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

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

ソリューション

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

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

問題

説明

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

原因

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

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

ソリューション

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

Ansibleインベントリ ファイルの詳細については、 Junosデバイスを管理する際のAnsibleインベントリ ファイルについて および https://www.ansible.com/ にあるAnsibleの公式ドキュメントを参照してください。

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

問題

説明

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

原因

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

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

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

ソリューション

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