Fehlerbehebung bei Junos PyEZ-Fehlern bei der Konfiguration von Junos-Geräten
In den folgenden Abschnitten werden Fehler beschrieben, die bei der Verwendung von Junos PyEZ zur Konfiguration 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 Timeout-Fehlern
Problem
Beschreibung
Der Junos PyEZ-Code generiert eine RpcTimeoutError-Meldung oder eine TimeoutExpiredError-Meldung und kann die Gerätekonfiguration nicht aktualisieren.
RpcTimeoutError(host: dc1a.example.com, cmd: commit-configuration, timeout: 30)
Ursache
Die Standardzeit für ein Timeout eines NETCONF-RPCs beträgt 30 Sekunden. Große Konfigurationsänderungen können diesen Wert überschreiten, was zu einer Zeitüberschreitung des Vorgangs führt, bevor die Konfiguration hochgeladen und festgeschrieben werden kann.
Lösung
Um Konfigurationsänderungen zu berücksichtigen, die möglicherweise eine Commitzeit erfordern, die länger als das Standardtimeoutintervall ist, legen Sie das Timeoutintervall auf einen geeigneten Wert fest, und führen Sie den Code erneut aus. Um das Intervall zu konfigurieren, legen Sie entweder die Device
timeout
Eigenschaft auf einen geeigneten Wert fest, oder schließen Sie das Argument timeout=seconds
in die commit()
oder-Methode set()
ein, wenn Sie Konfigurationsdaten auf ein Gerät laden und bestätigen. Zum Beispiel:
dev = Device(host="host") dev.open() dev.timeout = 300 with Config(dev, mode='exclusive') as cu: cu.load(path='junos-config.conf', merge=True) cu.commit(timeout=360) dev.close()
Beheben von Fehlern bei der Konfigurationssperre
Problem
Beschreibung
Der Junos PyEZ-Code generiert eine LockError-Meldung, die darauf hinweist, dass die Konfiguration nicht gesperrt werden kann.
LockError(severity: error, bad_element: None, message: configuration database modified)
Ursache
Ein Konfigurationssperrfehler kann aus folgenden Gründen auftreten:
Ein anderer Benutzer hat eine exklusive Sperre für die Konfiguration.
-
Für die freigegebene Konfigurationsdatenbank wurden Änderungen vorgenommen, für die kein Commit ausgeführt wurde.
Der Benutzer, der den Junos PyEZ-Code ausführt, verfügt nicht über die Berechtigung zum Konfigurieren des Geräts.
Lösung
Wenn ein anderer Benutzer über eine exklusive Sperre für die Konfiguration verfügt oder die Konfiguration geändert hat, warten Sie, bis die Sperre aufgehoben oder die Änderungen festgeschrieben wurden, und führen Sie den Code erneut aus. Wenn die Ursache des Problems darin besteht, dass der Benutzer nicht über die Berechtigung zum Konfigurieren des Geräts verfügt, führen Sie das Programm entweder mit einem Benutzer aus, der über die erforderlichen Berechtigungen verfügt, oder konfigurieren Sie ggf. das Junos-Gerät so, dass dem aktuellen Benutzer die erforderlichen Berechtigungen zum Vornehmen der Änderungen erteilt werden.
Beheben von Konfigurationsänderungsfehlern
Problem
Beschreibung
Der Junos PyEZ-Code generiert eine ConfigLoadError-Meldung, die darauf hinweist, dass die Konfiguration aufgrund eines Berechtigungsproblems nicht geändert werden kann.
ConfigLoadError(severity: error, bad_element: scripts, message: permission denied)
Ursache
Diese Fehlermeldung wird möglicherweise generiert, wenn der Benutzer, der den Junos PyEZ-Code ausführt, über die Berechtigung zum Ändern der Konfiguration verfügt, aber nicht über die Berechtigung verfügt, den gewünschten Teil der Konfiguration zu ändern.
Lösung
Führen Sie das Programm entweder mit einem Benutzer aus, der über die erforderlichen Berechtigungen verfügt, oder konfigurieren Sie ggf. das Junos-Gerät so, dass dem aktuellen Benutzer die erforderlichen Berechtigungen zum Vornehmen der Änderungen erteilt werden.