Junos XMLプロトコルを使用して以前の(ロールバック)設定を取得する
Junos OSを実行しているデバイスとのJunos XMLプロトコルセッションでは、クライアントアプリケーションは以前にコミットされた(ロールバック)設定を要求できます。クライアントは、設定のロールバックインデックスまたはその設定リビジョン識別子を参照することで、設定を取得できます。
ロールバック番号を使用して設定を取得する方法
Junos OSを実行しているデバイスとのJunos XMLプロトコルセッションで、以前にコミット(ロールバック)された設定を要求するために、クライアントアプリケーションは 要素を使ってRPCを<rollback>
実行<get-rollback-information>
します。この操作は、 動作モード コマンドとshow system rollback
同じです。要素は<rollback>
、表示する前の設定のロールバックインデックスを指定します。その値は0(直近のコミットされた設定ではゼロ)から、保存された以前の設定数よりも1未満(最大49)です。
Junos XML タグ付き出力(デフォルト)を要求するには、アプリケーションに 値xml
を持つ要素が<format>
含まれるか、要素を<format>
省略します。
<rpc> <get-rollback-information> <rollback>index-number</rollback> </get-rollback-information> </rpc>
Junos XML プロトコル サーバーは、応答を 、 、<rollback-information>
および <configuration>
タグ要素で<rpc-reply>
囲みます。<load-success/>
タグは実装の副作用であり、結果には影響しません。開始<configuration>
タグの属性については、 Junos XMLプロトコルセッションにおける設定情報リクエストのソースの指定を参照してください。
<rpc-reply xmlns:junos="URL"> <rollback-information> <load-success/> <configuration attributes> <!-- tag elements for the complete previous configuration --> </configuration> </rollback-information> </rpc-reply>
フォーマットされたASCII出力を要求するために、アプリケーションには 値text
を<format>
持つ要素が含まれています。
<rpc> <get-rollback-information> <rollback>index-number</rollback> <format>text</format> </get-rollback-information> </rpc>
Junos XML プロトコル サーバーは、その応答を 、 、 <rollback-information>
<configuration-information>
、および <configuration-output>
タグ要素で<rpc-reply>
囲みます。Junos OS設定ステートメントで使用されるフォーマットされたASCII表記の詳細については、 Junos XMLプロトコルセッションにおける設定データの出力形式の指定を参照してください。
<rpc-reply xmlns:junos="URL"> <rollback-information> <load-success/> <configuration-information> <configuration-output> <!-- formatted ASCII text for the complete previous configuration --> </configuration-output> </configuration-information> </rollback-information> </rpc-reply>
Junos OSリリース16.1以降、JSON形式で以前にコミット(ロールバック)設定を要求するために、アプリケーションには 要素内の値json
を持つ要素が<get-rollback-information>
含まれます<format>
。Junos OS リリース 16.1 以前は、開始<get-rollback-information>
タグに 属性をformat="json"
含めることで、JSON 形式のデータが要求されます。
<rpc> <get-rollback-information> <rollback>index-number</rollback> <format>json</format> </get-rollback-information> </rpc>
属性をformat="json"
使用して形式を指定する場合、Junos XML プロトコル サーバーはその応答を<rpc-reply>
要素で囲み、トップレベルの JSON メンバーのフィールド名は 、 、出力された構成データは"rollback-information"
シリアル化に古い実装を使用します。要素を<format>json</format>
使用して JSON 形式のデータを要求すると、Junos XML プロトコル サーバーはその応答を 、 <rollback-information>
、 <configuration-information>
、タグ<json-output>
要素で<rpc-reply>
囲み、トップレベルの JSON メンバーのフィールド名は 、 、出力された構成データは"configuration"
シリアル化に新しい実装を使用します。
<rpc-reply xmlns:junos="URL"> <rollback-information> <load-success/> <configuration-information> <json-output> <!-- JSON data for the complete previous configuration --> </json-output> </configuration-information> </rollback-information> </rpc-reply>
次の例は、インデックスが2のロールバック設定に対してJunos XMLタグ付き出力を要求する方法を示しています。実際の JUNOS-version 出力では、変数はJunos OSリリース 20.4の初期バージョンの20.4R1などの値に置き換えられます。
設定リビジョン識別子を使用して設定を取得する方法
設定を正常にコミットすると、Junos OSはその設定に一意の設定リビジョン識別子を割り当てます。以前にコミットされた設定のロールバックインデックスはコミットするたびに増加しますが、設定リビジョン識別子は同じ設定に対して静的なままです。
Junos OS リリース 20.4R1 以降、Junos XML プロトコル クライアント アプリケーションは RPC を <get-configuration-by-revision>
使用して、指定された設定リビジョン識別子に対応する設定を取得できます。例えば:
<rpc> <get-configuration-by-revision> <revision-string>re0-1605226203-331</revision-string> </get-configuration-by-revision> </rpc>
サーバーは、 要素に囲まれた要求された設定を <configuration-revision-information>
返します。
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/20.4R1/junos"> <configuration-revision-information> <load-success/> <configuration junos:changed-seconds="1605226201" junos:changed-localtime="2020-11-12 16:10:01 PST"> ... </configuration> </configuration-revision-information> </rpc-reply>
デフォルトでは、RPC は <get-configuration-by-revision>
設定を XML 形式で返します。設定をテキストまたは JSON として返す場合は、RPC に 要素を <format>
含め、 または を指定 text
します json
。
<rpc> <get-configuration-by-revision> <revision-string>re0-1605226203-331</revision-string> <format>text</format> </get-configuration-by-revision> </rpc>
<rpc> <get-configuration-by-revision> <revision-string>re0-1605226203-331</revision-string> <format>json</format> </get-configuration-by-revision> </rpc>
特定の設定に対する設定リビジョン識別子と現在のロールバックインデックス間のマッピングを決定することができます。特定のコミットされた設定の設定リビジョン識別子は静的であるのに対し、ロールバックインデックスはコミットするたびに増加することに注意してください。
特定の設定リビジョン識別子に対応するロールバック番号を決定するには、RPCを <get-configuration-by-revision>
実行し、リビジョン識別子を指定し、空 <rollback-number/>
のタグを含めます。
<rpc> <get-configuration-by-revision> <revision-string>re0-1605226203-331</revision-string> <rollback-number/> </get-configuration-by-revision> </rpc>
デバイスは、現在その設定リビジョン識別子に関連付けられているロールバックインデックスを返します。
<rpc-reply> <configuration-revision-information> <rollback-number>2</rollback-number> </configuration-revision-information> </rpc-reply>
同様に、現在特定のロールバック番号に関連付けられている設定リビジョン識別子を決定するには、RPCを <get-rollback-information>
実行し、ロールバックインデックスを指定し、空 <configuration-revision/>
のタグを含めます。
<rpc> <get-rollback-information> <rollback>2</rollback> <configuration-revision/> </get-rollback-information> </rpc>
デバイスは、現在そのロールバックインデックスに関連付けられている設定リビジョン識別子を返します。
<rpc-reply> <rollback-information> <configuration-revision>re0-1605226203-331</configuration-revision> </rollback-information>
クライアントアプリケーションは、デバイスのコミット履歴を表示することで、設定リビジョン識別子のマッピングをロールバックインデックスに取得することもできます。コミット履歴を表示し、設定リビジョン識別子を含めるために、クライアントアプリケーションは子要素を <get-commit-information>
持つRPCを <include-configuration-revision/>
実行します。サーバーは、運用モード コマンドの出力と同等の XML 出力を show system commit include-configuration-revision
返します。
<rpc> <get-commit-information> <include-configuration-revision/> </get-commit-information> </rpc>
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/20.4R1/junos"> <commit-information> <commit-history> <sequence-number>0</sequence-number> <user>admin</user> <client>netconf</client> <date-time junos:seconds="1605236880">2020-11-12 19:08:00 PST</date-time> <configuration-revision>re0-1605236878-333</configuration-revision> </commit-history> <commit-history> <sequence-number>1</sequence-number> <user>user1</user> <client>netconf</client> <date-time junos:seconds="1605228068">2020-11-12 16:41:08 PST</date-time> <configuration-revision>re0-1605228066-332</configuration-revision> </commit-history> </commit-information> <commit-history> <sequence-number>2</sequence-number> <user>admin</user> <client>cli</client> <date-time junos:seconds="1605226205">2020-11-12 16:10:05 PST</date-time> <configuration-revision>re0-1605226203-331</configuration-revision> </commit-history> ... </rpc-reply>
json
を持つ要素が
<get-rollback-information>
含まれます
<format>
。