Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

gNOIオペレーティングシステム(OS)サービス

gNOIオペレーティングシステム(OS)サービスを使用して、ターゲットネットワークデバイス上のソフトウェアをアップグレードします。

gNOI OS サービスを使用して、ターゲットデバイス上のソフトウェアをアップグレードできます。プロト定義ファイルは https://github.com/openconfig/gnoi/blob/master/os/os.proto にあります。

ソフトウェアインストールには、 OS サービスRPCに対応する3つの主要な手順があります。

  • インストール
  • アクティブにする
  • 検証

OSサービスRPCを使用して、ソフトウェアインストールパッケージをデバイスに転送し、指定したソフトウェアバージョンに対して設定を検証し、ソフトウェアをインストールできます。インストールされているソフトウェアバージョンを次のブートバージョンとして設定し、ソフトウェアバージョンを確認することもできます。

注:

RPCSetPackage()gNOIsystemサービスを使用して、デバイスにソフトウェアをインストールすることもできます。詳細については、gNOIシステムサービスを参照してください。

サポートされているRPC

表1:サポートされているos.proto RPC
RPC 説明 リリースで導入
Activate()

次回の再起動時に使用するソフトウェアバージョンを設定します。

Activate()no_rebootフラグが省略されているか、Falseに設定されている場合、ターゲットを再起動します。再起動で要求されたソフトウェアバージョンの起動に失敗した場合、ターゲットは以前のバージョンにロールバックします。

注:

Junosデバイスは、ActivateRequestメッセージのstandby_supervisor フィールドをサポートしていません。

注:

Junos OS Evolved リリース 25.2R1 より前は、 Activate() は現在の設定をソフトウェアと照合して検証し、ソフトウェアをインストールし、ソフトウェアバージョンを次のブートバージョンとして設定します。

Junos OS Evolved 22.2R1

Install()

ソフトウェアインストールパッケージをターゲットに転送し、ソフトウェアに対する設定を検証し、ソフトウェアをインストール(ステージング)します。

指定したソフトウェアイメージがデバイスに既にインストールされている場合は、現在の設定をソフトウェアイメージと照らし合わせて検証し、検証済みの設定をそのソフトウェアバージョンに関連付けられた実行中の設定として保存します。

注:

Junosデバイスは、TransferRequestメッセージのstandby_supervisor フィールドをサポートしていません。

注:

Junos OS Evolvedリリース25.2R1より前は、 Install() はソフトウェアインストールパッケージをターゲットにのみ転送します。

Junos OS Evolved 22.2R1

Verify()

実行中のソフトウェアのバージョンを確認してください。このRPCは、ターゲットが成功するまで起動中に複数回呼び出されることがあります。

注:

Junosデバイスは、VerifyResponseの verify_standby をサポートしていません。

Junos OS Evolved 22.2R1

OSサービス概要

gNOI OS サービスRPCにより、Junos OS Evolvedを実行しているデバイス上でソフトウェアを管理できます。Junos OS Evolvedは、ストレージメディアに複数のバージョンのソフトウェアを保存します。ソフトウェアバージョンごとに、ソフトウェアバージョンが最後に実行された時点で実行されていた設定もJunos OS保存します。

表2は 、さまざまなJunos OS EvolvedリリースでのRPC操作の概要を示しています。Junos OS Evolvedリリース25.2R1以降、すぐにアクティブ化せずにソフトウェアをインストールし、インストールされているソフトウェアバージョンに対して現在の設定を検証し、インストールされているソフトウェアバージョンをアクティブ化できます。

表 2: OS サービス RPC の変更点

RPC

Junos OS Evolvedリリース24.4R1およびそれ以前

Junos OS Evolvedリリース25.2R1およびそれ以降

Install()

ソフトウェアインストールパッケージをデバイスに転送します。

ソフトウェアインストールパッケージをデバイスに転送します。

指定されたソフトウェアバージョン(新規または以前にインストール済み)に対して現在の設定を検証します。

指定したソフトウェアバージョンがまだインストールされていない場合は、ソフトウェアをインストールします。

検証済みの現在のコンフィギュレーションを、指定されたソフトウェアバージョンに関連付けられた実行中のコンフィギュレーションとして保存します。

Activate()

指定されたソフトウェアバージョンに対して現在の設定を検証します。

ソフトウェアをインストールします。

指定されたソフトウェアバージョンを次のブートバージョンとして設定します。

指定されたソフトウェアバージョンを次のブートバージョンとして設定します。

(オプション)デバイスを再起動します。

(オプション)デバイスを再起動します。

Verify()

実行中のソフトウェアのバージョンを確認してください。

実行中のソフトウェアのバージョンを確認してください。

Junos OS Evolvedリリース25.2R1以降では、 Install() RPCは、指定されたソフトウェアインストールパッケージをターゲットデバイスの /var/tmp/ ディレクトリに転送し、ソフトウェアに対する設定を検証して、ソフトウェアバージョンがデバイスにまだインストールされていない場合はソフトウェアをインストールします。宛先ファイル名は、 TransferRequest メッセージの version フィールドで定義された値です。 Activate() RPCは、指定されたソフトウェアバージョンを次のブートバージョンとして設定し、オプションでデバイスを再起動してソフトウェアをアクティブ化します。インストールされている任意のバージョンのソフトウェアをアクティブ化できます。

Install()を実行して既存のソフトウェアバージョンを指定した場合、Install()は現在の設定をソフトウェアと照合して検証し、検証済みの設定をそのソフトウェアバージョンに関連付けられた実行中の設定として保存します。ソフトウェアバージョンが次のブートバージョンに設定されている場合、Install()はその過程でそれを非アクティブ化します。したがって、特定のソフトウェアバージョンが最近の設定変更で動作することを確認できます。

ネットワークデバイスの設定

始める前に:

OSサービスRPCを使用するために追加の設定は必要ありません。

例:インストールとアクティブ化

この例では、クライアントは gnoi_os_install_activate.py Pythonアプリケーションを実行し、以下の操作を実行します。

  • ローカルネットワーク管理システムからネットワークデバイスにソフトウェアパッケージをコピーします。

  • ソフトウェアイメージに対して設定を検証します。

  • ネットワークデバイスにパッケージをインストールします。

  • ネットワークデバイスを再起動して、新しいソフトウェアイメージをアクティブにします。

アプリケーションは、InstallRequest() メッセージを使用して Install() RPC を呼び出して、ファイルを転送します。アプリケーションは、転送完了間隔が 10% ごとに進行状況メッセージを発行することで、ファイル転送の進行状況を追跡します。ファイル転送が成功すると、システムはソフトウェアイメージに対して設定を検証し、ストレージクリーンアップを実行して、イメージをインストールします。次に、アプリケーションは Activate() RPC を呼び出して、新しいイメージを次のブート イメージとして設定し、ターゲットを再起動します。

アプリケーションは、チャネルを確立するための grpc_channel モジュールをインポートします。 grpc_channel モジュールについては、 gNOIサービスの設定で説明しています。アプリケーションの引数は args_os_install_activate.txt ファイルに格納されます。アプリケーションファイルと引数ファイルは次のとおりです。

gnoi_os_install_activate.py

args_os_install_activate.txt

注:

Junos OS Evolvedリリース23.4R1以降、Activate()Install()、およびVerify()RPCのversionフィールドは、パッケージ名ではなくソフトウェアバージョン文字列(/system/state/software-versionで表示)を使用するようになりました。

アプリケーションの実行

クライアントがアプリケーションを実行すると、アプリケーションはローカルデバイスからネットワークデバイスの /var/tmp ディレクトリにパッケージをコピーし、パッケージをインストールしてから、デバイスを再起動してインストールを完了します。

変更履歴テーブル

サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がお使いのプラットフォームでサポートされているかどうかを確認します。

リリース
説明
25.2R1-EVO
Junos OS Evolvedリリース25.2R1以降、 Install() RPCはソフトウェアインストールパッケージをデバイスにコピーし、指定されたソフトウェアバージョンに対して設定を検証してソフトウェアをインストールし、 Activate() RPCは指定されたソフトウェアバージョンを次のブートバージョンとして設定します。以前のリリースでは、 Install() がソフトウェア インストール パッケージをデバイスにコピーし、 Activate() がソフトウェアに対して設定を検証し、ソフトウェアをインストールして、ソフトウェア バージョンを次のブート バージョンとして設定していました。
25.2R1-EVO
Junos OS Evolvedリリース25.2R1以降、インストールされているソフトウェアイメージで Install() RPCを実行して、現在の設定をソフトウェアイメージに対して検証し、検証済みの設定をそのソフトウェアバージョンに関連付けられた実行中の設定として保存することができます。
23.4R1-EVO
Junos OS Evolved リリース 23.4R1 以降、 Activate()Install()、および Verify() RPC の version フィールドには、パッケージ名ではなくソフトウェアバージョン文字列( /system/state/software-version で表示)が使用されるようになりました。