Junosデバイス管理時のAnsible認証エラーのトラブルシューティング
以下のセクションでは、Ansibleを使用してJunosデバイスを管理する際に発生する可能性のある認証エラーの概要を説明します。これらのセクションでは、各エラーの潜在的な原因と解決策も示します。
ConnectAuthError の問題のトラブルシューティング
問題
形容
juniper.device
モジュールの実行中に、Ansible制御ノードは認証の失敗に対してConnectAuthError
エラーを生成します。例えば:
"msg": "Unable to make a PyEZ connection: ConnectAuthError(dc1a.example.net)"
原因
Junos デバイスは、以下の理由により、ユーザーの認証に失敗することがあります。
-
ユーザーが Junos デバイスにアカウントを持っていません。
-
ユーザーは、Junos デバイスにテキストベースのパスワードが設定されたアカウントを持っていますが、モジュールの実行時に間違ったパスワードがユーザーに提供されたり、パスワードが提供されなかったりします。
-
ユーザーは、JunosデバイスのアカウントにSSHキーが設定されているが、デバイスまたは制御ノードのいずれからでもSSHキーにアクセスできない。
解決
モジュールを実行しているユーザーが、すべてのターゲットJunosデバイスでJunos OSログインアカウントを持っていること、およびSSHパブリックキー/プライベートキーペアまたはテキストベースのパスワードがアカウントに設定されていることを確認してください。SSHキーが設定されている場合は、ユーザーがそれらにアクセスできることを確認します。 詳細については、JunosデバイスでAnsibleモジュールを実行するユーザーの認証を参照してください。
属性conn_typeエラーのトラブルシューティング
問題
形容
Junosデバイスで juniper.device
モジュールの実行中に、Ansible制御ノードが次のエラーを生成します。
AttributeError: 'JuniperJunosModule' object has no attribute 'conn_type'
原因
非推奨の古い Juniper.junos
モジュールでは、接続と認証のパラメータを定義するために provider
辞書の使用をサポートしていましたが、 juniper.device
モジュールでは provider
辞書の使用をサポートしておらず、前述のエラーが参照されると生成されます。
解決
juniper.device
モジュールの Playbook で接続および認証パラメーターを指定する場合、パラメーターは Ansible 接続に適した場所で定義する必要があります。持続的接続 (connection: juniper.device.pyez
) の場合は、vars:
セクションでパラメーターを定義します。ローカル接続 (connection: local
) の場合は、パラメーターを vars:
セクションの下、または最上位のモジュール引数として定義します。例えば:
--- - name: Get device facts hosts: dc1 connection: juniper.device.pyez gather_facts: no vars_prompt: - name: "DEVICE_PASSWORD" prompt: "Device password" private: yes vars: passwd: "{{ DEVICE_PASSWORD }}" tasks: - name: Get device facts juniper.device.facts: savedir: "{{ playbook_dir }}"
--- - name: Get device facts hosts: dc1 connection: local gather_facts: no vars_prompt: - name: "DEVICE_PASSWORD" prompt: "Device password" private: yes tasks: - name: Get device facts juniper.device.facts: passwd: "{{ DEVICE_PASSWORD }}" savedir: "{{ playbook_dir }}"