Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Herstellen einer Verbindung mit Junos-Geräten über Ansible

ZUSAMMENFASSUNG Mit den Ansible-Modulen von Juniper Networks können Sie über SSH-, Telnet- oder serielle Konsolenverbindungen eine Verbindung zu Junos-Geräten herstellen.

Juniper Networks bietet Ansible-Module, mit denen Sie Junos-Geräte verwalten können. Die Module von Juniper Networks werden über die juniper.device Sammlung verteilt. Die Module können über verschiedene Protokolle und Ansible-Verbindungen, die in diesem Dokument beschrieben werden, mit Junos-Geräten verbunden werden.

Übersicht über Verbindungsmethoden

Mit den juniper.device Erfassungsmodulen können Sie über SSH, Telnet oder eine serielle Konsolenverbindung eine Verbindung zu einem Junos-Gerät herstellen. Sie müssen eine serielle Konsolenverbindung verwenden, wenn Ihr Terminal oder Laptop physisch mit dem CONSOLE-Port eines Junos-Geräts verbunden ist. Sie können SSH oder Telnet verwenden, um eine Verbindung mit der Verwaltungsschnittstelle des Geräts oder mit einem Konsolenserver herzustellen, der direkt mit dem CONSOLE-Port des Geräts verbunden ist.

Neue oder auf Null gesetzte Geräte mit werkseitigen Standardkonfigurationen erfordern den Zugriff über eine Konsolenverbindung. So können Sie Ansible verwenden, um ein Gerät, das noch nicht für den Remotezugriff konfiguriert ist, zunächst zu konfigurieren, indem Sie entweder eine serielle Konsolenverbindung verwenden, wenn Sie direkt mit dem Gerät verbunden sind, oder indem Sie Telnet oder SSH über einen Konsolenserver verwenden, der direkt mit dem Gerät verbunden ist.

Standardmäßig verwenden die juniper.device Module SSH, um eine Verbindung zu einem Gerät herzustellen. Um Telnet oder eine serielle Konsolenverbindung zu verwenden, setzen Sie den mode Parameter auf den entsprechenden Wert. Um Telnet mit einem Gerät zu verbinden, legen Sie das mode Argument auf "telnet". Um eine serielle Konsolenverbindung zu verwenden, legen Sie das mode Argument auf "serial". Tabelle 1 fasst die Verbindungsmodi, ihre Standardwerte für bestimmte Parameter und alle erforderlichen Junos OS-Konfigurationen zusammen. Die juniper.device Module unterstützen alle Verbindungsmodi ab ihrer ersten Veröffentlichung.

Tabelle 1: Verbindungsmodi für die Ansible-Module von Juniper Networks

Verbindungsmodus

Wert des mode Arguments

Standardport

Erforderliche Junos OS-Konfiguration

NETCONF über SSH (Standard)

830

[edit system services]
netconf {
    ssh;
}

Serielle Konsolenverbindung

serial

/dev/ttyUSB0

SSH über einen Konsolenserver

22

Telnet zu Junos-Gerät

telnet

23

[edit system services]
telnet;

Telnet über einen Konsolenserver

telnet

23

Anmerkung:

Bevor Sie über SSH mit telnet oder NETCONF auf die Verwaltungsschnittstelle zugreifen können, müssen Sie zunächst den entsprechenden Dienst auf der [edit system services] Hierarchieebene aktivieren. Da Telnet Klartextkennwörter verwendet (und somit eine potenzielle Sicherheitslücke darstellt), empfehlen wir die Verwendung von SSH.

Wenn Sie die juniper.device Module zum Verwalten eines Junos-Geräts ausführen, muss das Remote-Gerät in der Lage sein, den Ansible-Benutzer mit Anmeldeinformationen zu authentifizieren, die für das jeweilige Protokoll geeignet sind. Weitere Informationen finden Sie unter Authentifizieren von Benutzern, die Ansible-Module auf Junos-Geräten ausführen.

Die juniper.device Module unterstützen verschiedene Ansible-Verbindungen bei der Verbindung mit Junos-Geräten, darunter lokale (pro Task) und persistente (pro Spiel) Verbindungen. Die Ansible-Verbindung bestimmt, ob Ansible für jede Aufgabe in der Wiedergabe eine separate Verbindung zum Host herstellt oder ob eine einzelne Verbindung zu einem Host hergestellt wird, die über alle Aufgaben in der Wiedergabe bestehen bleibt. Weitere Informationen zum Angeben der Ansible-Verbindung finden Sie unter Grundlegendes zu lokalen und persistenten Ansible-Verbindungen.

Grundlegendes zu lokalen und persistenten Ansible-Verbindungen

Die Ansible-Module von Juniper Networks benötigen Python auf Junos-Geräten nicht, da sie Junos PyEZ und die Junos XML-API über NETCONF als Schnittstelle mit dem Gerät verwenden. Um Vorgänge auf Junos-Geräten auszuführen, müssen Sie daher Module lokal auf dem Ansible-Steuerungsknoten ausführen, auf dem Python installiert ist. Sie können die Module lokal ausführen, indem Sie sie in die Playbook-Wiedergabe aufnehmen connection: local . Wenn Sie verwenden connection: local, stellt Ansible für jede Aufgabe im Spiel, die Operationen auf dem Host ausführt, eine separate Verbindung zum Host her.

Die juniper.device Sammlungsmodule unterstützen connection: juniper.device.pyez auch das Herstellen einer persistenten Verbindung zu einem Host. Wenn Sie eine persistente Verbindung verwenden, führt Ansible die Module weiterhin lokal auf dem Steuerungsknoten aus, baut jedoch nur eine einzige Verbindung zu jedem Host auf und unterhält diese, die über die Ausführung aller Aufgaben im Spiel bestehen bleibt. Das Herstellen einer dauerhaften Verbindung zu einem Host kann für die Ausführung mehrerer Aufgaben effizienter sein als das Herstellen einer separaten Verbindung zum Host für jede Aufgabe im Spiel.

Tabelle 2 fasst die Ansible-Verbindungen und die sie unterstützenden Inhaltssätze zusammen.

Tabelle 2: Von Juniper Networks-Modulen unterstützte Ansible-Verbindungen

Ansible-Verbindung

Beschreibung

Unterstützung von Inhaltsgruppen

connection: local

Führen Sie die Module lokal auf dem Ansible-Steuerungsknoten aus, aber stellen Sie für jede Aufgabe im Spiel, die Operationen auf dem Host ausführt, eine separate Verbindung zu einem Host her.

juniper.deviceSammlung

Juniper.junosrole (veraltet)

connection: juniper.device.pyez

Führen Sie die Module lokal auf dem Ansible-Steuerungsknoten aus, aber stellen Sie eine dauerhafte Verbindung zu einem Host her, der über die Ausführung aller Aufgaben im Spiel bestehen bleibt.

juniper.deviceSammlung

Wenn Sie verwenden connection: local, stellt Ansible für jedes Modul eine separate Verbindung zu einem Host her, d. h., Sie können modulspezifische Verbindungs- und Authentifizierungsparameter in der Argumentliste des Moduls definieren. Im Gegensatz dazu bleibt bei der Verwendung connection: juniper.device.pyezvon die Verbindung über alle Aufgaben im Spiel hinweg bestehen, sodass Sie die Verbindungs- und Authentifizierungsparameter global für alle Module definieren müssen. Sie können die Parameter in der vars: Sektion eines Spiels definieren und sie auch auf andere Weise bereitstellen, z. B. in einer SSH-Konfigurationsdatei oder in der Ansible-Inventardatei. Weitere Informationen finden Sie unter Authentifizieren von Benutzern, die Ansible-Module auf Junos-Geräten ausführen.

Das folgende Playbook stellt eine dauerhafte Verbindung zu jedem Host her, der für alle Aufgaben im Spiel verwendet wird. Die Anmeldeinformationen des Benutzers, die in einer Ansible-Tresordatei gespeichert sind, werden im Abschnitt des vars: Spiels definiert.

Herstellen einer Verbindung mit einem Gerät über SSH

Die Ansible-Module von Juniper Networks unterstützen die Verwendung von SSH für die Verbindung mit einem Junos-Gerät. Sie können eine NETCONF-Sitzung über SSH auf der Verwaltungsschnittstelle des Geräts einrichten oder eine SSH-Verbindung mit einem Konsolenserver herstellen, der direkt mit dem CONSOLE-Port des Geräts verbunden ist. Der SSH-Server muss in der Lage sein, den Benutzer mit standardmäßigen SSH-Authentifizierungsmechanismen zu authentifizieren, wie unter Authentifizieren von Benutzern, die Ansible-Module auf Junos-Geräten ausführen, beschrieben. Um eine NETCONF-Sitzung über SSH einzurichten, müssen Sie außerdem die unter Einrichten von Ansible für Junos OS verwaltete Knoten beschriebenen Anforderungen erfüllen.

Die Module von Juniper Networks fragen automatisch die SSH-Standardkonfigurationsdatei unter ~/.ssh/config ab, sofern vorhanden. Sie können auch den ssh_config Parameter angeben, um eine andere Konfigurationsdatei anzugeben.

Wenn SSH verwendet wird, um eine Verbindung zu einem Junos-Gerät oder zu einem mit dem Gerät verbundenen Konsolenserver herzustellen, versuchen die Module zunächst, eine SSH-Authentifizierung mit öffentlichem Schlüssel und dann eine kennwortbasierte Authentifizierung durchzuführen. Wenn die kennwortbasierte Authentifizierung verwendet wird, wird das angegebene Kennwort als Gerätekennwort verwendet. Wenn SSH-Schlüssel verwendet werden, wird das angegebene Passwort als Passphrase zum Entsperren des privaten Schlüssels verwendet. Wenn der private SSH-Schlüssel eine leere Passphrase enthält, ist kein Kennwort erforderlich. Es wird jedoch nicht empfohlen, private SSH-Schlüssel mit leeren Passphrasen zu verwenden.

Das folgende Playbook richtet eine NETCONF-Sitzung über SSH mit einem Junos-Gerät ein und ruft die Gerätefakten ab. Das Playbook verwendet SSH-Schlüssel am Standardspeicherort.

Mit den Ansible-Modulen von Juniper Networks können Sie auch über eine SSH-Verbindung zu einem Konsolenserver eine Verbindung zu einem Junos-Gerät herstellen. In diesem Fall müssen Sie die Anmeldedaten sowohl für das Junos-Gerät als auch für den Konsolenserver angeben. Sie verwenden die user Parameter und passwd zum Angeben der Anmeldedaten für Junos OS und cs_user die Parameter und cs_passwd zum Angeben der Anmeldeinformationen für den Konsolenserver. Wenn SSH-Schlüssel verwendet werden, cs_passwd ist die Passphrase für den privaten Schlüssel.

Im folgenden Playbook werden Sie aufgefordert, die Anmeldeinformationen des Benutzers für den Konsolenserver und das Junos-Gerät einzugeben. Das Modul authentifiziert sich beim Konsolenserver und dann beim Junos-Gerät. Wenn die Authentifizierung erfolgreich war, ruft das Playbook die Gerätefakten vom verwalteten Knoten ab und druckt die Junos OS-Version.

Die Module von Juniper Networks fragen automatisch die SSH-Standard-Clientkonfigurationsdatei unter ~/.ssh/config ab, sofern vorhanden. Sie können eine andere SSH-Konfigurationsdatei verwenden, indem Sie den ssh_config Parameter einschließen und den Speicherort der Konfigurationsdatei angeben. Zum Beispiel:

Herstellen einer Telnet-Verbindung mit einem Gerät

Mit den Modulen von Juniper Networks können Sie über Telnet eine Verbindung zu einem Junos-Gerät herstellen, das einen unverschlüsselten Zugriff auf das Netzwerkgerät bietet. Sie können eine Telnet-Verbindung mit der Verwaltungsschnittstelle des Geräts oder mit einem Konsolenserver herstellen, der direkt mit dem CONSOLE-Port des Geräts verbunden ist. Wenn Sie über einen Konsolenserver auf das Gerät zugreifen, können Sie zunächst ein neues oder auf Null gesetztes Gerät konfigurieren, das noch nicht für den Remotezugriff konfiguriert ist. Um eine Telnet-Verbindung zur Verwaltungsschnittstelle herzustellen, müssen Sie den Telnet-Dienst auf der [edit system services] Hierarchieebene auf allen Geräten konfigurieren, die Zugriff auf die Schnittstelle benötigen.

Um eine Telnet-Verbindung zum Remote-Gerät herzustellen, legen Sie den mode Parameter auf "telnet" fest und fügen Sie optional den port Parameter hinzu, um einen Port anzugeben. Wenn Sie den port Parameter festlegenmode, "telnet" aber weglassen, wird der Standardwert für port 23 verwendet. Definieren Sie mode für persistente Verbindungen und port unter dem vars: Abschnitt. Für lokale Verbindungen können Sie die Parameter entweder unter dem vars: Abschnitt oder als Modulargumente definieren.

Das folgende Playbook führt eine Verbindung zu einem Junos-Gerät über Port 7016, ruft die Gerätefakten ab und speichert sie in einer Datei. Das Playbook fordert zur Eingabe des Benutzernamens und des Kennworts auf.

Herstellen einer Verbindung mit einem Gerät über eine serielle Konsolenverbindung

Mit den Modulen von Juniper Networks können Sie über eine serielle Konsolenverbindung eine Verbindung zu einem Junos-Gerät herstellen. Dies ist nützlich, wenn Sie zunächst ein neues oder auf Null gesetztes Gerät konfigurieren müssen, das noch nicht für den Remote-Zugriff konfiguriert ist. Um diese Verbindungsmethode verwenden zu können, muss Ihr Terminal oder Laptop physisch über den CONSOLE-Port mit dem Junos-Gerät verbunden sein. Ausführliche Anweisungen zum Herstellen einer Verbindung mit dem CONSOLE-Port eines Junos-Geräts finden Sie in der Hardwaredokumentation für Ihr Gerät.

Um eine Verbindung zu einem Junos-Gerät über eine serielle Konsolenverbindung herzustellen, legen Sie den mode Parameter des Moduls auf "serial"fest, und fügen Sie optional den port Parameter zum Angeben eines Ports hinzu. Wenn Sie den Parameter festlegenmode, "serial" aber weglassenport, ist /dev/ttyUSB0der Standardwert für port . Definieren Sie mode für persistente Verbindungen und port unter dem vars: Abschnitt. Für lokale Verbindungen können Sie die Parameter entweder unter dem vars: Abschnitt oder als Modulargumente definieren.

Das folgende Playbook stellt über den CONSOLE-Port eine Verbindung zu einem Junos-Gerät her, lädt dann eine Erstkonfiguration und führt einen Commit aus. Das Playbook fordert zur Eingabe des Benutzernamens und des Kennworts auf.