Beheben von Ansible-Authentifizierungsfehlern bei der Verwaltung von Junos-Geräten
In den folgenden Abschnitten werden Authentifizierungsfehler beschrieben, die bei der Verwendung von Ansible zur Verwaltung von Junos-Geräten auftreten können. In diesen Abschnitten werden auch mögliche Ursachen und Lösungen für jeden Fehler vorgestellt.
Beheben von ConnectAuthError-Problemen
Problem
Beschreibung
Während der Ausführung eines juniper.device Moduls generiert der Ansible-Kontrollknoten einen ConnectAuthError Fehler für fehlgeschlagene Authentifizierung. Zum Beispiel:
"msg": "Unable to make a PyEZ connection: ConnectAuthError(dc1a.example.net)"
Verursachen
Das Junos-Gerät kann den Benutzer aus den folgenden Gründen möglicherweise nicht authentifizieren:
-
Der Benutzer verfügt nicht über ein Konto auf dem Junos-Gerät.
-
Der Benutzer verfügt über ein Konto mit einem textbasierten Kennwort, das auf dem Junos-Gerät konfiguriert ist, aber beim Ausführen des Moduls wird das falsche Kennwort oder kein Kennwort für den Benutzer angegeben.
-
Der Benutzer verfügt über ein Konto auf dem Junos-Gerät, für das SSH-Schlüssel konfiguriert sind, aber auf die SSH-Schlüssel kann weder auf dem Gerät noch auf dem Steuerungsknoten zugegriffen werden.
Lösung
Stellen Sie sicher, dass der Benutzer, der die Module ausführt, über ein Junos OS-Anmeldekonto auf allen Junos-Zielgeräten verfügt und dass ein öffentliches/privates SSH-Schlüsselpaar oder ein textbasiertes Kennwort für das Konto konfiguriert ist. Wenn SSH-Schlüssel konfiguriert sind, stellen Sie sicher, dass der Benutzer darauf zugreifen kann. Weitere Informationen finden Sie unter Authentifizieren von Benutzern, die Ansible-Module auf Junos-Geräten ausführen.
Fehlerbehebung bei Attribut- conn_type Fehlern
Problem
Beschreibung
Während der Ausführung eines juniper.device Moduls auf einem Junos-Gerät generiert der Ansible-Steuerungsknoten den folgenden Fehler:
AttributeError: 'JuniperJunosModule' object has no attribute 'conn_type'
Verursachen
Während die älteren, veralteten Juniper.junos Module die Verwendung eines Wörterbuchs zum Definieren von provider Verbindungs- und Authentifizierungsparametern unterstützten, unterstützen die juniper.device Module die Verwendung eines Wörterbuchs provider nicht und generieren den oben genannten Fehler, wenn auf eines verwiesen wird.
Lösung
Wenn Sie Verbindungs- und Authentifizierungsparameter in der Playbook-Wiedergabe für die juniper.device Module angeben, müssen die Parameter an der für die Ansible-Verbindung geeigneten Position definiert werden. Für persistente Verbindungen (connection: juniper.device.pyez) definieren Sie die Parameter unter dem vars: Abschnitt. Für lokale Verbindungen ()connection: local definieren Sie die Parameter entweder unter dem vars: Abschnitt oder als Modulargumente der obersten Ebene. Zum Beispiel:
---
- 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 }}"