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>)"/>
説明
拡張機能を使用してリモート プロシージャ コール(RPC)を実行するために使用できる接続ハンドルを jcs:execute()
返します。リモートデバイスでRPCを実行するには、 SSH セッションを確立する必要があります。スクリプトが接続を確立するためには、スクリプトが実行されるローカルデバイス上のリモートデバイスのSSHホストキー情報を設定するか、リモートデバイスのSSHホストキー情報がスクリプトを実行しているユーザーの既知のホストファイルに存在している必要があります。
Junos OS Evolvedを実行するデバイスは、この機能を使用して jcs:open()
ローカルまたはリモート接続を確立する場合、パスワードレスログインのみをサポートします。関数の引数としてパスワードを提供したり、Junos OS でサポートされている対話型パスワードを使用したりすることはできません。ローカルまたはリモート接続を有効にするには、パスワードレスログインまたはその他の認証の問題が発生する可能性があります。
特定のルーティングインスタンス内からSSH接続をリダイレクトするには、接続パラメーターにルーティングインスタンス名を含めます。ルーティングインスタンスは 階層レベルで [edit routing-instances]
設定する必要があり、リモートデバイスは、そのルーティングインスタンスのルーティングテーブルを使用するか、そのルーティングインスタンスで設定されたインターフェイスのいずれかから到達可能である必要があります。
Junos OS リリース 11.4 以降、新しいパラメーターである は、 session-options
Junos OS を実行するデバイス上の Junos XML プロトコル サーバー、または SSH 経由の NETCONF サービスが有効になっているデバイス上の 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);
次の例は、ユーザーである bsmith が秘密鍵の「test123」を使用してリモート デバイスへの接続ハンドルである fivestar を取得する方法を示しています。
var $connection = jcs:open("fivestar", "bsmith", "test123");
次の例は、秘密鍵の「test123」を使用したユーザーの bsmith が Junos OS を実行するデバイスとのセッションを作成 junos-netconf
する方法を示しています。
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のサポート。