Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Salt を使用した Junos OS 搭載デバイスへのソフトウェアのインストール

ジュニパーネットワークスでは、Salt を使用した Junos OS が動作するデバイスの管理をサポートしており、Junos の実行および状態モジュール(Salt 用)は、管理対象デバイス上で運用タスクや設定タスクを実行するための機能を定義します。実行機能とsalt.states.junos.install_os状態機能を使用するとsalt.modules.junos.install_os、Junos OSを実行するデバイスにソフトウェアをインストールできます。

以下のセクションでは、サポートされる導入シナリオ、一般的なインストールプロセスとオプション、VMホストのアップグレード、統合型ISSU(統合型インサービスソフトウェアアップグレード)、およびこれらの機能をサポートするデバイス上でのノンストップソフトウェアアップグレード(NSSU)などの特殊なアップグレードシナリオを含め、Saltを使用してJunos OSイメージをインストールする方法について説明します。

junos.install_os機能概要

この機能 junos.install_os を使用すると、以下のシナリオでJunos OSを実行しているデバイス上のソフトウェアをSaltを使用して更新できます。

  • 単一のルーティングエンジンを持つスタンドアロンデバイス

  • デュアルルーティングエンジンを搭載したスタンドアロンデバイス

  • 非混合モード構成のEXシリーズバーチャルシャーシ

  • 非混合モード構成のQFXシリーズバーチャルシャーシ

  • VMホストをサポートするルーティングエンジンでのVMホストのアップグレード

  • 統合型ISSUやNSSUなど、 何らかの形式のインサービス 機能が有効になっている展開構成

ここでは、 junos.install_os 実行関数と状態関数の基本的な構文を示します。使用可能な関数パラメーターの完全な一覧については、その関数の API ドキュメントを参照してください。

実行関数の salt.modules.junos.install_os 構文は次のとおりです。

状態関数の salt.states.junos.install_os 構文は次のとおりです。

どこ:

  • no_copy=(False | True)—(オプション)Junos OSを実行しているデバイスにソフトウェア イメージをコピーするかどうかを指定します。デフォルトは False です。

  • path- インストールするソフトウェア イメージへのパス。

  • reboot=(False | True)- (オプション)ソフトウェアのインストール後にシステムを再起動するかどうかを指定します。デフォルトは False です。

  • remote_path='remote-path'—(オプション)イメージのインストール元のターゲットデバイス上のディレクトリ。デフォルトは / var/tmp です。

表1 は、さまざまなソフトウェアパッケージの場所に必要なパラメータ設定の概要を示しています。

表1:さまざまなソフトウェアパッケージの場所のjunos.install_osパラメータ設定

ソフトウェア パッケージの場所

no_copy パラメーター

path パラメーター

remote_path パラメーター

ソルトマスター

省略または False

Salt マスター上のソフトウェア パッケージへのパス。パスにはこの salt:// 表記を使用する必要があります。

(オプション)パッケージのコピー先のターゲットデバイス上のディレクトリ。デフォルトは / var/tmp です。

プロキシミニオンサーバー

省略または False

プロキシミニオンサーバー上のソフトウェアパッケージへの絶対パス。

(オプション)パッケージのコピー先のターゲットデバイス上のディレクトリ。デフォルトは / var/tmp です。

ターゲットデバイス

に設定: True

ソフトウェア パッケージのファイル名。

(オプション)インストールパッケージがすでに存在している必要があるターゲットデバイス上のディレクトリ。デフォルトは / var/tmp です。

Url

ソフトウェア パッケージのインストール元の Junos OS を実行しているターゲット デバイスの観点から見た URL。

デフォルトでは、この機能はjunos.install_os、 パラメーターで指定されたpathSaltマスターまたはプロキシミニオンサーバー上のパスから、Junos OSを実行しているデバイス(混合されていないバーチャルシャーシの個々のデバイスまたはプライマリデバイス)の/var/tmpディレクトリにソフトウェアイメージをコピーします。イメージを別のディレクトリにコピーするには、引数remote_pathを含めてディレクトリを指定します。デバイスにイメージを収容するのに十分なストレージ領域があることを確認するために、パラメーターFalseを に設定しない限りcleanfsjunos.install_os関数はイメージをコピーする前にターゲットデバイスでストレージのクリーンアップを自動的に実行します。

ソフトウェア・イメージがターゲット・デバイスにすでに存在する場合は、引数を に設定し、引数Trueno_copypathイメージ・ファイル名に設定します。イメージは、引数で指定されたremote_pathディレクトリ、または省略した場合はremote_pathデフォルトの /var/tmp ディレクトリに存在する必要があります。

リモートURLからソフトウェアイメージをインストールするには、Junos OSを実行しているターゲットデバイスの観点から、引数をpathURLに設定します。指定した URL からイメージがコピーされてインストールされ、引数remote_pathと引数は無視されますno-copy。URL の形式の指定については、 Junos OS CLI コマンドでファイル名と URL を指定するための形式を参照してください。

実行関数と状態関数のパラメーターの完全な一覧については、以下を参照してください。

junos.install_os実行機能と状態関数は、Junos PyEZinstall()関数を使用してインストールを実行します。インストールの一部として実行される操作の詳細については、 Junos PyEZを使用してJunos OSを実行するデバイスにソフトウェアをインストールする のインストールプロセスの概要セクションを参照してください。

junos.install_os実行機能の使い方

salt.modules.junos.install_os実行機能を使用すると、Junos OSを実行している1つ以上のデバイスにソフトウェアイメージをインストールできます。たとえば、次のコマンドは、指定したイメージをSaltマスターからターゲットデバイスの/var/tmpディレクトリにコピーします。デバイスがパッケージをインストールし、再起動します。

インストールには時間がかかる場合があるため、このコマンドには、Salt がミニオンからの応答を待機する時間を増やすオプションが含まれています -t seconds 。そうしないと、ミニオンが応答を返す前にコマンドラインクライアントがタイムアウトする可能性があります。

状態junos.install_os関数の使用方法

状態関数を使用すると salt.modules.junos.install_os 、管理対象デバイスが実行するイメージを指定できます。必要に応じて 1 つ以上のターゲットに状態を適用するか、適切なミニオンの状態トップ ファイル内で参照できます。

次の状態ファイルは、ターゲットミニオンが指定されたイメージを実行することを保証します。

状態が適用されると、Saltはローカルイメージ(この場合はSaltマスターの/ srv/salt/images ディレクトリにあります)をターゲットデバイスの/ var/tmp ディレクトリにコピーします。デバイスがイメージをインストールし、再起動します。

インストールには時間がかかる場合があるため、このコマンドには、Salt がミニオンからの応答を待機する時間を増やすオプションが含まれています -t seconds 。そうしないと、ミニオンが応答を返す前にコマンドラインクライアントがタイムアウトする可能性があります。

タイムアウト値を指定する方法

この junos.install_os 関数は、NETCONF セッションを介して操作を実行します。NETCONF RPCがタイムアウトするデフォルトの時間は30秒です。インストール プロセス中、この関数は、デバイスにパッケージをコピーしてインストールする場合は RPC タイムアウト間隔を 1800 秒 (30 分)、チェックサムを計算する場合は 300 秒 (5 分) に増やします。場合によっては、インストール プロセスまたはチェックサム計算がこれらの時間間隔を超えることがあります。

関数の呼び出しでインストール プロセスとチェックサム計算のjunos.install_osタイムアウト値を増やすには、それぞれパラメーターとchecksum_timeoutパラメーターdev_timeoutを含め、適切な値に設定します。例えば:

パラメータを no_copy 省略するか、 に設定すると Falsejunos.install_os ソフトウェア イメージをコピーする前に、ターゲット デバイス上のストレージのクリーンアップが自動的に実行されます。これを行うと、画像に十分なスペースがあることを確認するのに役立ちます。既定では、クリーンアップ操作は 300 秒後にタイムアウトします。この操作の既定のタイムアウト値を変更するには、パラメーターを操作の完了を cleanfs_timeout 待機する秒数に設定します。

Salt コマンドラインクライアントがミニオンからの応答を待機するデフォルトの時間は 5 秒です。ただし、インストールプロセスにはかなりの時間がかかる場合があります。その結果、ミニオンが応答を返す前にコマンドラインクライアントがタイムアウトする可能性があります。例えば:

その場合は、後でインストールの結果を確認できます。ただし、コマンドを実行したときに結果を表示したい場合は、コマンドに オプションを含め -t seconds 、必要に応じてタイムアウト値を増やすことで、Saltがミニオンからの返信を待つ時間を増やすことができます。

VM ホストのアップグレードを実行する方法

VMホスト対応ルーティングエンジンを搭載したデバイスでは、Junos OSはLinuxベースのホスト(VMホスト)上で仮想マシン(VM)として稼働します。ホストOSおよび互換性のあるJunos OSをアップグレードするVMホストのアップグレードには、VMホストのインストールパッケージ(junos-vmhost-install-x.tgz)が必要であり、<request-vmhost-package-add>RPCに対応する request vmhost software add 運用モードコマンドを使用して実行されます。

この junos.install_os 関数は、 vmhost=True VM ホストのアップグレードを実行するための引数をサポートしています。この引数が存在する場合、関数は RPC を使用して <request-vmhost-package-add> インストールを実行します。

次の状態宣言は、デバイス上の Junos OS とホスト OS の両方をアップグレードします。

統合 ISSU または NSSU を実行する方法

Salt for Junos OSは、統合型インサービスソフトウェアアップグレード(統合型ISSU)またはノンストップソフトウェアアップグレード(NSSU)を、この機能をサポートし、必要な要件を満たすデバイス上で実行するためのサポートを提供します。統合型 ISSU および NSSU の詳細については、ご使用の製品のソフトウェア マニュアルを参照してください。

統合型ISSU機能により、コントロールプレーンを中断することなく、トラフィックの中断を最小限に抑えながら、2つの異なるJunos OSリリース間でアップグレードできます。この機能をサポートするデバイスで統合インサービスソフトウェアアップグレードを実行するには、 機能を使用しjunos.install_os、 に設定しますissuTrue

次の状態宣言では、関数は両方のルーティング エンジンで Junos OS をアップグレードし、junos.install_osインストール プロセスの一環として新しいプライマリ ルーティング エンジン(以前の古いバックアップ ルーティング エンジン)を再起動します。インストールが成功した場合、 および all_re: False 引数は、reboot: True新しいバックアップルーティングエンジン(以前のプライマリルーティングエンジン)である接続されたルーティングエンジンを再起動するようにデバイスに指示します。

NSSU機能を使用すると、ネットワークトラフィックの中断を最小限に抑えながら、スイッチまたはバーチャルシャーシで実行されているJunos OSソフトウェアを冗長ルーティングエンジンでアップグレードできます。この機能をサポートするデバイスでノンストップ ソフトウェア アップグレードを実行するには、 関数を使用しjunos.install_os、 に設定しますnssuTrue。例えば: