Junosデバイス管理時のAnsible認証エラーのトラブルシューティング
以下のセクションでは、Ansible を使用して Junos デバイスを管理する際に発生する可能性のある認証エラーの概要を説明します。これらのセクションでは、各エラーの潜在的な原因と解決策も示します。
ConnectAuthエラー問題のトラブルシューティング
問題
説明
またはモジュールの実行juniper.device
中に、Ansible制御ノードは認証失敗のエラーを生成しますConnectAuthError
。Juniper.junos
例えば:
"msg": "Unable to make a PyEZ connection: ConnectAuthError(dc1a.example.net)"
原因
Junos デバイスは、以下の理由でユーザーの認証に失敗することがあります。
-
ユーザーが Junos デバイスのアカウントを持っていない。
-
ユーザーは、Junos デバイスで設定されたテキスト ベースのパスワードを持つアカウントを持っていますが、モジュール実行時に間違ったパスワードが指定されているか、パスワードが指定されていません。
-
ユーザーはSSHキーが設定されたJunosデバイスのアカウントを持っていますが、デバイスまたは制御ノードのいずれからも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
接続および認証パラメーターの定義をサポートしていますが、ディクショナリの使用provider
には対応しておらず、juniper.device
ディクショナリが参照されると前述のエラーが生成されます。
ソリューション
プレイブックのプレイ juniper.device
でモジュールの接続パラメーターと認証パラメーターを指定する場合は、パラメーターを 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 }}"