So installieren Sie Salt für Junos OS
Sie können Salt Version 3001 (Sodium) oder höher verwenden, um Geräte zu verwalten, auf denen Junos OS ausgeführt wird. Der Salt-Master kann Geräte, auf denen Junos OS ausgeführt wird, über einen Salt-Proxy-Minion verwalten, der entweder auf dem Salt-Master oder einem separaten Server ausgeführt werden kann. Sie benötigen einen Proxy-Diener pro verwaltetem Gerät, und jeder Proxy-Diener benötigt ca. 40 MB bis 100 MB RAM.
Der allgemeine Installationsprozess sieht folgendermaßen aus:
Auf jedem Gerät, auf dem Junos OS ausgeführt wird:
Aktivieren Sie NETCONF über SSH.
Konfigurieren Sie das Benutzerkonto und die Authentifizierungsmethode, die Salt verwendet, um eine Verbindung mit dem Gerät herzustellen.
Auf dem Salt-Master:
Installieren Sie Salt und seine Abhängigkeiten.
Definieren Sie die Proxy-Konfiguration für jedes verwaltete Gerät.
Starten Sie den Salt-Master-Prozess.
Auf jedem Junos-Proxy-Minion-Server:
Installieren Sie Junos PyEZ und die Module und
yamlordereddictloader
Pythonjxmlease
.Installieren Sie Salt und seine Abhängigkeiten, wenn der Server vom Salt-Master getrennt ist.
Starten Sie den Junos Proxy-Minion-Prozess für jedes verwaltete Gerät.
Akzeptieren Sie auf dem Salt-Master die Schlüssel für jeden Junos-Proxy-Minion.
(Optional) Aktivieren Sie die Junos-Syslog-Engine (für Salt).
In den folgenden Abschnitten finden Sie Details zu den einzelnen Teilen des Installationsprozesses für einen Server, auf dem Ubuntu 18.04 ausgeführt wird. Wenn Sie ein anderes Betriebssystem verwenden, verwenden Sie die für Ihr Betriebssystem geeigneten Befehle. Wir empfehlen die Verwendung von Python 3.
Konfigurieren des Geräts mit Junos OS
Der Junos Proxy-Minion greift auf Geräten mit Junos OS über das SSH-Protokoll und standardmäßige SSH-Authentifizierungsmechanismen auf den NETCONF-Server zu. Um eine SSHv2-Verbindung mit einem Gerät herzustellen, auf dem Junos OS ausgeführt wird, müssen Sie sicherstellen, dass die folgenden Anforderungen erfüllt sind:
Der NETCONF-Dienst über SSH ist auf jedem Gerät aktiviert, auf dem eine NETCONF-Sitzung eingerichtet wird.
Die Clientanwendung verfügt über ein Benutzerkonto und kann sich bei jedem Gerät anmelden, auf dem eine NETCONF-Sitzung eingerichtet wird.
Für das Anmeldekonto, das von der Clientanwendung verwendet wird, ist ein öffentliches/privates SSH-Schlüsselpaar oder ein textbasiertes Kennwort konfiguriert.
Die Clientanwendung kann auf den öffentlichen/privaten Schlüssel oder das textbasierte Kennwort zugreifen.
Wenn Sie SSH-Schlüssel für die Authentifizierung bei dem Gerät verwenden, auf dem Junos OS ausgeführt wird, und die Schlüssel noch nicht vorhanden sind, generieren Sie das öffentliche und private SSH-Schlüsselpaar für den gewünschten Benutzer auf dem Proxy-Minion-Server, und geben Sie alle erforderlichen oder gewünschten Optionen an, z. B.:
saltuser@minion:~$ cd ~/.ssh saltuser@minion:~/.ssh$ ssh-keygen -t rsa -b 2048 Generating public/private rsa key pair. Enter file in which to save the key (/home/saltuser/.ssh/id_rsa): id_rsa_salt Enter passphrase (empty for no passphrase): ***** Enter same passphrase again: *****
So konfigurieren Sie ein Gerät, auf dem Junos OS ausgeführt wird:
Informationen zum Aktivieren von NETCONF auf einem Gerät, auf dem Junos OS ausgeführt wird und zum Erfüllen der Anforderungen für das Einrichten einer SSH-Sitzung finden Sie im Entwicklerhandbuch für das NETCONF-XML-Verwaltungsprotokoll.
Siehe auch
Einrichten des Salt-Masters
Der Salt-Master ist der Hauptsteuerungsserver, der einen oder mehrere Knoten oder Minions verwaltet. SaltStack empfiehlt, einen Salt-Master auf einem dedizierten Management-Server oder einer virtuellen Maschine (VM) zu installieren. Sie müssen Salt Version 3001 (Sodium) oder höher installieren, um Geräte mit Junos OS zu verwalten.
So installieren und konfigurieren Sie einen Salt-Master:
Einrichten des Junos Proxy Minion Servers
Sie müssen die folgende Software auf einem Proxy-Minion-Server installieren, der Geräte mit Junos OS verwaltet:
Salt-Software
Junos PyEZ-Bibliothek von Juniper Networks
jxmlease
undyamlordereddictloader
Python-Module
Der Junos Proxy-Minion verwendet die Junos PyEZ-Bibliothek, um eine Verbindung mit dem NETCONF-Server des Geräts herzustellen und Verwaltungsaufgaben auszuführen.
Wenn Sie die Salt-Master- und Junos-Proxy-Minions auf demselben Server ausführen, ist der Minion-Hostname in diesem Abschnitt identisch mit dem Salt-Master-Hostnamen im vorherigen Abschnitt.
So richten Sie einen Junos-Proxy-Minion entweder auf dem Salt-Master-Server oder einem separaten Server ein:
Der Proxy-Minion stellt eine Verbindung mit dem Salt-Master her und sendet seinen öffentlichen Schlüssel. Der Salt-Master muss den Schlüssel akzeptieren, bevor der Salt-Master und der Proxy-Diener kommunizieren können.
Autorisieren der Proxy-Minion-Schlüssel auf dem Salt-Master
Salt verwendet öffentliche Schlüssel für die Authentifizierung beim Salt-Masterprozess. Standardmäßig autorisiert der Salt-Master keine Minion- oder Proxy-Minion-Schlüssel. Sie müssen die Schlüssel akzeptieren, bevor Sie die entsprechenden Geräte verwalten können.
Sie können die Schlüssel manuell akzeptieren, wie in diesem Abschnitt beschrieben. Wenn Sie wissen, dass die eingehenden Schlüssel kein Sicherheitsrisiko darstellen, z. B. wenn der Salt-Master- und der Salt-Proxy-Prozess auf demselben Server ausgeführt werden, können Sie alternativ die auto_accept: True
Option in die Salt-Master-Konfigurationsdatei aufnehmen, um alle eingehenden Schlüssel automatisch zu akzeptieren. Aus Sicherheitsgründen ist diese Option standardmäßig deaktiviert.
So listen Sie die ausstehenden Schlüssel auf und akzeptieren sie:
Überprüfen der Verbindung mit dem verwalteten Gerät
Nachdem Sie die Schlüssel auf dem Salt-Master akzeptiert haben, rufen Sie die test.ping
Ausführungsfunktion auf, um den Proxy-Minion über den Nachrichtenbus anzupingen und zu überprüfen, ob der Minion aktiv ist und kommuniziert. Sie können einen Ziel-Diener angeben oder verwenden '*'
, um alle Minions anzupingen.
Im folgenden Beispiel wird das Gerät mit Junos OS angepingt, das dem Junos-Proxy-Minion router1 zugeordnet ist.
saltuser@salt-master:~$ sudo salt 'router1' test.ping router1: True
Im folgenden Beispiel werden alle Minions angepingt, die der Salt-Master verwaltet:
saltuser@salt-master:~$ sudo salt '*' test.ping router1: True router2: True
Im folgenden Beispiel wird die junos.cli
Funktion verwendet, um den show version
Befehl auf dem angegebenen Gerät auszugeben, auf dem Junos OS ausgeführt wird:
saltuser@salt-master:~$ sudo salt 'router1' junos.cli 'show version' router1: ---------- message: Hostname: router1 Model: mx104 Junos: 18.4R1.8 JUNOS Base OS boot [18.4R1.8] JUNOS Base OS Software Suite [18.4R1.8] JUNOS Crypto Software Suite [18.4R1.8] JUNOS Packet Forwarding Engine Support (TRIO) [18.4R1.8] JUNOS Web Management [18.4R1.8] JUNOS Online Documentation [18.4R1.8] JUNOS SDN Software Suite [18.4R1.8] JUNOS Services Application Level Gateways [18.4R1.8] JUNOS Services COS [18.4R1.8] JUNOS Services Jflow Container package [18.4R1.8] JUNOS Services Stateful Firewall [18.4R1.8] JUNOS Services NAT [18.4R1.8] JUNOS Services RPM [18.4R1.8] JUNOS Services SOFTWIRE [18.4R1.8] JUNOS Services Captive Portal and Content Delivery Container package [18.4R1.8] JUNOS Macsec Software Suite [18.4R1.8] JUNOS Services Crypto [18.4R1.8] JUNOS Services IPSec [18.4R1.8] JUNOS DP Crypto Software Software Suite [18.4R1.8] JUNOS py-base-powerpc [18.4R1.8] JUNOS py-extensions-powerpc [18.4R1.8] JUNOS jsd [powerpc-18.4R1.8-jet-1] JUNOS Kernel Software Suite [18.4R1.8] JUNOS Routing Software Suite [18.4R1.8] out: True
Wenn der Fehler 'junos' __virtual__ returned False: The junos or dependent module could not be loaded: junos-eznc or jxmlease or yamlordereddictloader or proxy could not be loaded
auftritt, sind Junos PyEZ oder die jxmlease
yamlordereddictloader
oder-Module möglicherweise nicht auf dem Junos-Proxy-Minion-Server installiert, oder der Junos-Proxy-Minion-Prozess wird möglicherweise nicht ausgeführt oder kann sich nicht beim Gerät authentifizieren.
(Optional) Konfigurieren der Junos Syslog-Engine
Die Junos Syslog-Engine (für Salt) kann für die ereignisbasierte Statusverwaltung von Geräten verwendet werden, auf denen Junos OS ausgeführt wird. Wenn Sie die Junos Syslog-Engine aktivieren, überwacht sie Syslog-Ereignisse, extrahiert die Ereignisinformationen, übersetzt sie in das Salt-Format und veröffentlicht sie auf dem Salt-Ereignisbus. Um die Junos-Syslog-Engine zu aktivieren, müssen Sie die Junos-Syslog-Engine auf dem Salt-Master konfigurieren, und Sie müssen auch das Gerät, auf dem Junos OS ausgeführt wird, so konfigurieren, dass Syslog-Ereignisse an den konfigurierten Port auf dem Salt-Server gesendet werden.
Die Junos Syslog-Engine kann auch auf dem Proxy-Minion-Server ausgeführt werden.
So aktivieren Sie die Junos-Syslog-Engine auf dem Salt-Master:
So konfigurieren Sie das Gerät, auf dem Junos OS ausgeführt wird, so, dass Syslog-Ereignisse an den Host gesendet werden, auf dem die Junos Syslog-Engine ausgeführt wird:
Konfigurieren Sie den Hostnamen oder die IP-Adresse des Servers, auf dem die Junos Syslog-Engine ausgeführt wird, und konfigurieren Sie den Port, auf dem sie lauscht.
[edit] saltuser@router1# set system syslog host salt-master.example.com port 9999
Konfigurieren Sie die zu sendenden Ereignistypen.
Um alle Ereignisse zu senden, konfigurieren Sie
any any
sie so, dass alle Einrichtungen und alle Schweregrade der Nachricht angegeben werden.[edit] saltuser@router1# set system syslog host salt-master.example.com any any
Wenn Sie nur bestimmte Ereignisse senden möchten, konfigurieren Sie die Einrichtung und den Schweregrad der zu erfassenden Ereignisse, z. B.:
[edit] saltuser@router1# set system syslog host salt-master.example.com kernel info saltuser@router1# set system syslog host salt-master.example.com security any
Bestätigen Sie die Konfiguration.
[edit] saltuser@router1# commit