Grundlegendes zu Ansible für Junos OS-Sammlungen und -Module
ZUSAMMENFASSUNG Juniper Networks bietet Ansible-Module, mit denen Sie Junos-Geräte verwalten können.
Grundlegendes zu Ansible-Sammlungen und -Modulen für die Verwaltung von Junos-Geräten
Ansible ist ein IT-Automatisierungs-Framework, das für das Konfigurationsmanagement von Infrastrukturen verwendet wird. Sie verwenden Ansible-Module, bei denen es sich um diskrete Codeeinheiten handelt, um bestimmte Funktionen auf einem verwalteten Knoten auszuführen. Sie können einzelne Module auf Remotehosts ausführen, um Ad-hoc-Aufgaben auszuführen, oder Sie können Module über Playbooks ausführen.
Ansible und Juniper Networks stellen Ansible-Module bereit, mit denen Sie Junos-Geräte verwalten können. Die Ansible-Module von Juniper Networks werden über Ansible-Sammlungen gruppiert und verteilt, die im Ansible Galaxy-Repository gehostet werden. Tabelle 1 gibt einen Überblick über die verschiedenen Inhaltssätze, die für die Verwaltung von Junos-Geräten verfügbar sind.
Inhaltsgruppe |
Beschreibung |
Ansible-Versionen |
---|---|---|
|
Sammlung für die Verwaltung von Junos-Geräten, die Juniper Networks als Open-Source-Projekt bereitstellt und verwaltet. |
Ansible 2.10 und höher |
|
Sammlung für die Verwaltung von Junos-Geräten, die Ansible bereitstellt, pflegt und unterstützt. |
Ansible 2.10 und höher |
Ansible-Kernmodule |
Ansible-Module, die in der Ansible-Basisinstallation enthalten sind. In Ansible 2.10 wurden die Core-Module von der Basisinstallation in die |
Ansible 2.1 bis Ansible 2.9 |
|
Rolle für die Verwaltung von Junos-Geräten, die von Juniper Networks bereitgestellt, gewartet und unterstützt wird. Diese Rolle wird durch die |
Ansible 2.1 und höher |
Eine Ansible-Rolle besteht aus einer Reihe von Aufgaben und unterstützenden Variablen, Dateien, Vorlagen und Modulen für die Konfiguration eines Hosts. Ab Ansible 2.10 unterstützt Ansible Content Collections, ein Format zum Verteilen von Ansible-Inhalten, das nicht Teil der Ansible-Basisinstallation ist. Ansible-Sammlungen können eine breitere Palette von Inhalten enthalten, einschließlich Modulen, Playbooks, Plugins und Rollen. Ansible-Collections verfügen zudem über eigene Repositories und können unabhängig von der Ansible-Basisinstallation entwickelt und freigegeben werden.
In Ansible 2.9 und früher können Sie Junos-Geräte mithilfe der Module verwalten, die in der Rolle Juniper Networks Juniper.junos
bereitgestellt werden, oder mithilfe der Kernmodule, die als Teil der Ansible-Basisinstallation bereitgestellt werden. Ab Ansible 2.10 werden die Juniper.junos
Rolle und die Ansible-Kernmodule durch die entsprechende Collection ersetzt. Mit der Einführung der Sammlung von Juniper Networks juniper.device
wurden die Module in der Juniper.junos
Rolle unter neuen Namen in der Sammlung dupliziert und behalten somit die gleichen Funktionen und Parameter wie die ursprünglichen Module bei, mit Ausnahme des provider
Parameters. Es wird empfohlen, die juniper.device
Sammlung zu verwenden, da der Sammlung erst in Zukunft neue Features hinzugefügt werden.
Ausführen von Modulen auf Junos-Geräten
Um die Sammlungen zu verwenden, die im Ansible Galaxy-Repository gehostet werden, müssen Sie zuerst Ansible auf dem Steuerungsknoten und dann die Sammlung installieren. Weitere Informationen zum Installieren der juniper.device
Sammlung finden Sie unter Serveranforderungen für Ansible für Junos OS.
Ansible-Module können Operationen auf einem verwalteten Knoten ausführen. In der Regel sendet der Ansible-Steuerungsknoten ein Modul an einen verwalteten Knoten, wo es ausgeführt und anschließend entfernt wird. In diesem Szenario muss der verwaltete Knoten in der Lage sein, das Modul auszuführen. Da die meisten Ansible-Module in Python geschrieben sind, erfordert Ansible in der Regel Python auf dem verwalteten Knoten.
Für die Juniper Networks-Module in der juniper.device
Sammlung ist jedoch kein Python auf den verwalteten Knoten erforderlich. Im Gegensatz zum üblichen Vorgang werden die Module lokal auf dem Ansible-Steuerungsknoten ausgeführt, und die Module verwenden Junos PyEZ und die Junos XML-API über NETCONF als Schnittstelle zum verwalteten Knoten. Diese Ausführungsmethode ermöglicht es Ihnen, Ansible zu verwenden, um jedes unterstützte Junos-Gerät zu verwalten. Abbildung 1 veranschaulicht die Kommunikation zwischen dem Ansible-Steuerungsknoten und einem verwalteten Junos-Gerät.

Um die juniper.device
Sammlungsmodule verwenden zu können, muss das Playbook oder der Befehl:
-
Sammlung oder FQCN angeben: Um die Sammlung anzugeben, schließen Sie den
collections
Schlüssel in die Wiedergabe ein. Alternativ können Sie den Schlüssel weglassen und stattdessen über dencollections
vollqualifizierten Auflistungsnamen (Fully Qualified Collection Name, FQCN) verweisen, was die empfohlene Methode ist. -
Lokale Ausführung der Module auf dem Steuerungsknoten: Um Ansible-Module lokal auszuführen, definieren Sie den
connection
Parameter als , z. B. durchlocal
Aufnahmeconnection: local
in Ihr Playbook oder--connection local
in der Befehlszeile.Anmerkung:Wenn Sie verwenden
connection: local
, stellt Ansible für jede Aufgabe im Spiel, für die eine Verbindung erforderlich ist, eine separate Verbindung zum Gerät her. Diejuniper.device
Sammlungsmodule unterstützen auch die Verwendung vonconnection: juniper.device.pyez
, wodurch die Module weiterhin lokal ausgeführt werden, aber stattdessen eine einzelne, persistente Verbindung zu einem Gerät für alle Aufgaben in einem Spiel hergestellt wird. -
Geben Sie geeignete Verbindungs- und Authentifizierungsinformationen an, um eine Verbindung mit dem verwalteten Gerät herzustellen. – Weitere Informationen finden Sie unter:
Sie können Ansible-Module mit jedem Benutzerkonto ausführen, das Zugriff auf das verwaltete Junos-Gerät hat. Wenn Sie Ansible-Module ausführen, werden die Zugriffsberechtigungen des Junos OS-Benutzerkontos erzwungen, und die für das Junos OS-Benutzerkonto konfigurierte Klasse bestimmt die Berechtigungen. Wenn ein Benutzer also ein Modul ausführt, das Konfigurationsänderungen auf ein Gerät lädt, muss der Benutzer über Berechtigungen zum Ändern der relevanten Teile der Konfiguration verfügen.
Das folgende Playbook führt das facts
Modul der juniper.device
Sammlung aus, um die Gerätefakten abzurufen und in einer Datei zu speichern. Im Beispiel werden vorhandene SSH-Schlüssel am Standardspeicherort für die Authentifizierung mit dem Gerät verwendet, und daher werden Anmeldeinformationen nicht explizit im Playbook bereitgestellt.
--- - name: Get Device Facts hosts: dc1 connection: local gather_facts: no tasks: - name: Retrieve facts from a Junos device juniper.device.facts: savedir: "{{ playbook_dir }}" - name: Print version ansible.builtin.debug: var: junos.version
Sie können auch Ad-hoc-Vorgänge in der Befehlszeile ausführen. Mit dem folgenden Befehl wird das facts
Modul der juniper.device
Sammlung ausgeführt und Gerätefakten von Hosts in der Bestandslistengruppe dc1 abgerufen.
user@ansible-cn:~$ ansible --connection local -i production dc1 -m juniper.device.facts
Juniper Networks juniper.device-Sammlung
Juniper Networks stellt die juniper.device
Ansible Content Collection zur Verfügung, die auf der Ansible Galaxy-Website gehostet wird. Die Sammlung umfasst Ansible-Module, mit denen Sie Junos-Geräte verwalten können.
Tabelle 2 beschreibt die Module in der juniper.device
Auflistung. In der ersten Version der Sammlung behalten die Sammlungsmodule die gleichen Funktionen und Parameter wie das entsprechende Modul in der Juniper.junos
Rolle bei, mit Ausnahme des Parameters, der provider
für die Sammlungsmodule nicht unterstützt wird.
Die aktuellste Liste, Dokumentation und Verwendungsbeispiele für die Module finden Sie unter https://ansible-juniper-collection.readthedocs.io/.
juniper.device-Modulname |
Beschreibung |
---|---|
|
Führen Sie CLI-Befehle auf dem Junos-Gerät aus und speichern Sie die Ausgabe lokal. |
|
Verwalten Sie die Konfiguration von Junos-Geräten. |
|
Rufen Sie gerätespezifische Informationen vom Remote-Host ab, einschließlich der Junos OS-Version, Seriennummer und Hardware-Modellnummer. |
|
Führen Sie Junos Snapshot Administrator in Python (JSNAPy)-Tests über Ansible aus. |
|
Übertragen Sie eine Datei zwischen dem lokalen Ansible-Steuerknoten und dem Junos-Gerät. |
|
Führen Sie den |
|
Ausführen einer Pfad-MTU-Erkennung auf Junos-Geräten. |
|
Führen Sie Junos OS RPCs aus. |
|
Installieren Sie ein Junos OS-Softwarepaket und starten Sie ein Junos-Gerät neu. |
|
Ausführen von Systemvorgängen auf Junos-Geräten, einschließlich Zurücksetzen, Neustarten oder Herunterfahren des Geräts. |
|
Erstellen Sie einen Chassis-Cluster der SRX-Serie für clusterfähige Firewalls der SRX-Serie. |
|
Verwenden Sie Junos PyEZ-Betriebstabellen und -ansichten, um Betriebsinformationen von Junos-Geräten abzurufen. |