open() Function (SLAX and XSLT)
Namespaces
http://xml.juniper.net/junos/commit-scripts/1.0
SLAX-Syntax
var $connection = jcs:open(); var $connection = jcs:open(remote-hostname, <username>, <passphrase>, <routing-instance-name>); var $connection = jcs:open(remote-hostname, <session-options>);
XSLT-Syntax
<xsl:variable name="connection" select="jcs:open()"/> <xsl:variable name="connection" select="jcs:open(remote-hostname, <username>, <passphrase>, <routing-instance-name>)"/> <xsl:variable name="connection" select="jcs:open(remote-hostname, <session-options>)"/>
Beschreibung
Geben Sie ein Verbindungshandle zurück, das zum Ausführen von Remoteprozeduraufrufen (Remote Procedure Calls, RPCs) mithilfe der jcs:execute()
Erweiterungsfunktion verwendet werden kann. Um einen RPC auf einem Remotegerät auszuführen, muss eine SSH-Sitzung aufgebaut werden. Damit das Skript die Verbindung herstellen kann, müssen Sie entweder die SSH-Hostschlüsselinformationen für das Remotegerät auf dem lokalen Gerät konfigurieren, auf dem das Skript ausgeführt wird, oder die SSH-Hostschlüsselinformationen für das Remotegerät müssen in der bekannten Hostdatei des Benutzers vorhanden sein, der das Skript ausführt.
Geräte mit Junos OS Evolved unterstützen nur die kennwortlose Anmeldung, wenn über diese jcs:open()
Funktion eine lokale oder Remote-Verbindung hergestellt wird. Die Angabe eines Kennworts als Funktionsargument oder die Verwendung eines interaktiven Kennworts, wie es von Junos OS unterstützt wird, wird nicht unterstützt. Um eine lokale oder Remote-Verbindung herzustellen, führen Sie diese Funktion über eine kennwortlose Anmeldung aus, da sonst Authentifizierungsprobleme auftreten können.
Um die SSH-Verbindung so umzuleiten, dass sie von einer bestimmten Routing-Instanz stammt, fügen Sie den Namen der Routing-Instanz in die Verbindungsparameter ein. Die Routinginstanz muss auf Hierarchieebene [edit routing-instances]
konfiguriert werden, und das Remotegerät muss entweder über die Routingtabelle für diese Routinginstanz oder über eine der unter dieser Routinginstanz konfigurierten Schnittstellen erreichbar sein.
Ab Junos OS Version 11.4 unterstützt der neue Parameter , die Option, eine Sitzung entweder mit dem Junos XML-Protokollserver auf Geräten mit Junos OS oder mit dem NETCONF-Server auf Geräten zu erstellen, session-options
auf denen der NETCONF-Dienst über SSH aktiviert ist. Bisher unterstützte die Funktion nur Sitzungen mit dem Junos XML-Protokollserver auf Geräten, auf denen Junos OS ausgeführt wird.
Python-Automatisierungsskripte können Junos PyEZ-APIs verwenden, um eine Sitzung einzurichten und RPCs auf einem lokalen oder Remote-Gerät auszuführen.
Der Anschlussgriff wird mit der jcs:close()
Funktion geschlossen.
Parameter
passphrase |
(Optional) Die Passphrase für die Anmeldung des Benutzers. Wenn Sie keine Passphrase angeben und diese für die Authentifizierung erforderlich ist, sollten Sie während der Skriptausführung von dem Gerät, mit dem Sie eine Verbindung herstellen, zur Eingabe einer Passphrase aufgefordert werden. |
remote-hostname |
Domänenname oder IP-Adresse des Remote-Routers, Switches oder Sicherheitsgeräts. Wenn Sie eine lokale Verbindung öffnen, übergeben Sie diesen Wert nicht. Wenn Sie einen Sitzungstyp angeben, ist dieser Parameter erforderlich. |
routing-instance-name |
(Optional) Routing-Instanz, von der die SSH-Verbindung ausgeht. |
session-options |
(Optional) XML-Knotensatz, der das Sitzungsprotokoll und die Verbindungsparameter angibt. Die Struktur des Knotensatzes sieht wie folgt aus: var $session-options := { <instance> "routing-instance-name"; <method> ("junoscript" | "netconf" | "junos-netconf"); <passphrase> "passphrase"; <password> "password"; <port> "port-number"; <routing-instance> "routing-instance-name"; <username> "username"; }
|
username |
(Optional) Der Anmeldename des Benutzers. Wenn Sie keinen Benutzernamen angeben und dieser für die Verbindung erforderlich ist, verwendet das Skript den lokalen Namen des Benutzers, der das Skript ausführt. |
Rückgabewert
connection |
Verbindungshandle zum Remote-Host. |
Anwendungsbeispiele
Das folgende Beispiel zeigt, wie Sie eine Verbindung zu einem lokalen Gerät herstellen:
var $connection = jcs:open();
Das folgende Beispiel zeigt, wie Sie eine Verbindung zu einem Remotegerät herstellen:
var $connection = jcs:open(remote-hostname);
Das folgende Beispiel zeigt, wie der Benutzer bsmith mit der Passphrase "test123" ein Verbindungshandle zum Remotegerät fivestar erhält:
var $connection = jcs:open("fivestar", "bsmith", "test123");
Das folgende Beispiel zeigt, wie der Benutzer bsmith mit der Passphrase "test123" eine junos-netconf
Sitzung mit einem Gerät erstellt, auf dem Junos OS ausgeführt wird:
var $options := { <method> "junos-netconf"; <username> "bsmith"; <passphrase> "test123"; } var $connection = jcs:open("fivestar", $options);
Informationen zur Veröffentlichung
Diese Funktion wurde in Junos OS Version 9.3 eingeführt.
Unterstützung für NETCONF-Sitzungen wurde in Junos OS Version 11.4 hinzugefügt.
Unterstützung für Routing-Instanzen wurde in Junos OS Version 12.2 hinzugefügt.
Unterstützung für Junos OS Evolved wurde in Junos OS Evolved Version 18.3R1 hinzugefügt.