open() Function (SLAX and XSLT)
命名 空间
http://xml.juniper.net/junos/commit-scripts/1.0
SLAX 语法
var $connection = jcs:open(); var $connection = jcs:open(remote-hostname, <username>, <passphrase>, <routing-instance-name>); var $connection = jcs:open(remote-hostname, <session-options>);
XSLT 语法
<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>)"/>
描述
返回一个连接句柄,该句柄可用于使用 jcs:execute()
扩展功能执行远程过程调用 (RPC)。要在远程设备上执行 RPC,必须建立 SSH 会话。为了使脚本建立连接,您必须在将执行脚本的本地设备上为远程设备配置 SSH 主机密钥信息,或者远程设备的 SSH 主机密钥信息必须存在于执行脚本的用户的已知主机文件中。
当使用 jcs:open()
该功能建立本地或远程连接时,运行 Junos OS Evolved 的设备仅支持无密码登录。它们不支持将密码作为功能参数提供,也不支持使用 Junos OS 支持的交互式密码。要实现本地或远程连接,请通过无密码登录来执行此功能,否则可能会遇到身份验证问题。
要将 SSH 连接重定向到特定路由实例中,请将路由实例名称包含在连接参数中。路由实例必须在层次结构级别进行配置 [edit routing-instances]
,并且可以使用该路由实例的路由表或从该路由实例下配置的某个接口访问远程设备。
从 Junos OS 11.4 版开始, session-options
新参数支持在运行 Junos OS 的设备上创建与 Junos XML 协议服务器的会话,或者在启用了 SSH NETCONF 服务的设备上创建会话。以前,该功能仅支持在运行 Junos OS 的设备上与 Junos XML 协议服务器进行会话。
Python 自动化脚本可以使用 Junos PyEZ API 在本地或远程设备上建立会话和执行 RPC。
连接句柄随功能关闭 jcs:close()
。
参数
passphrase |
(可选)用户的登录密码。如果未指定密码,并且是身份验证所需的密码,则您要连接的设备在执行脚本期间应提示您输入一个密码。 |
remote-hostname |
远程路由器、交换机或安全设备的域名或 IP 地址。如果要打开本地连接,请勿传递此值。如果指定会话类型,则为必填参数。 |
routing-instance-name |
(可选)SSH 连接从其发起的路由实例。 |
session-options |
(可选)用于指定会话协议和连接参数的 XML 节点集。节点集的结构为: 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 |
(可选)用户的登录名。如果未指定用户名,并且是连接所需的用户名,则脚本将使用执行脚本的用户的本地名称。 |
返回值
connection |
与远程主机的连接句柄。 |
使用示例
以下示例说明如何连接到本地设备:
var $connection = jcs:open();
以下示例说明如何连接到远程设备:
var $connection = jcs:open(remote-hostname);
以下示例显示了使用密码短语“test123”的用户如何五星获取远程设备的连接句柄:
var $connection = jcs:open("fivestar", "bsmith", "test123");
以下示例显示了使用密码短语“test123”的用户如何创建 junos-netconf
与运行 Junos OS 的设备会话:
var $options := { <method> "junos-netconf"; <username> "bsmith"; <passphrase> "test123"; } var $connection = jcs:open("fivestar", $options);
版本信息
在 Junos OS 9.3 版中引入的功能。
支持 Junos OS 11.4 版中添加的 NETCONF 会话。
支持 Junos OS 12.2 版中添加的路由实例。
Junos OS Evolved 18.3R1 版中添加了对 Junos OS Evolved 的支持。