Salt を使用した、Junos OS 搭載デバイスの再起動またはシャットダウン
ジュニパーネットワークスでは、Salt を使用した Junos OS が動作するデバイスの管理をサポートしており、Junos の実行および状態モジュール(Salt 用)は、管理対象デバイス上で運用タスクや設定タスクを実行するための機能を定義します。実行機能とsalt.states.junos.shutdown
状態機能を使用するとsalt.modules.junos.shutdown
、Salt を使用して、Junos OS を実行しているデバイスを再起動または電源切ることができます。
このトピックでは、Salt を使用して、Junos OS を実行しているデバイスを再起動または電源切る方法、遅延後に操作を実行する方法、特定の時間に操作をスケジュールする方法について説明します。
junos.shutdown 機能概要
この junos.shutdown
関数を使用すると、Junos OS を搭載したデバイスで以下の操作を要求できます。
即時のシステムの再起動またはシャットダウン
オプションの遅延を伴う再起動またはシャットダウン操作
特定の日時にスケジュールされた再起動またはシャットダウン操作
デフォルトでは、デュアルjunos.shutdown
ルーティングエンジンまたはバーチャルシャーシ設定の場合、この関数はすべてのルーティングエンジンで要求された操作を実行します。この関数にはjunos.shutdown
、実行するアクションである引数が 1 つ必要です。または のいずれかのshutdown
パラメーターを明示的にインクルードreboot
し、 とTrue
等しく設定する必要があります。
実行関数の salt.modules.junos.shutdown
構文は次のとおりです。
salt 'target' junos.shutdown (reboot | shutdown)=True (in_min=minutes | at=\'time\')
状態関数の salt.states.junos.shutdown
構文は次のとおりです。
id: junos.shutdown: - (reboot | shutdown): True - at: 'time' - in_min: minutes
どこ:
at=\'time\'
- (オプション)操作をスケジュールする時間。id
- 状態宣言のユーザー定義識別子。in_min=minutes
- (オプション)リブートまたはシャットダウン操作を遅延させる分数。(reboot | shutdown)=True
- 実行する操作。デバイスを再起動するかシャットダウンするかを指定するには、 または のいずれかのパラメーターTrue
を に明示的に設定reboot
shutdown
する必要があります。
junos.shutdown実行機能の使い方
salt.modules.junos.shutdown
実行機能を使用すると、Salt マスターコマンドラインからJunos OSを実行している1つ以上のデバイスを再起動または電源切ることができます。
例えば、以下のコマンドは、ターゲット・デバイス上のすべてのルーティング・エンジンをただちに再起動します。
saltuser@salt-master:~$ sudo salt 'router1' junos.shutdown reboot=True router1: ---------- message: Successfully powered off/rebooted. out: True
同様に、次のコマンドはデバイスの電源を切断します。
saltuser@salt-master:~$ sudo salt 'router1' junos.shutdown shutdown=True router1: ---------- message: Successfully powered off/rebooted. out: True
次のコマンドは、グレインで os_family:junos
一致するすべてのデバイスを直ちに再起動します。これは、Junos OSを実行しているすべての管理対象デバイスにこの操作を適用する場合に便利です。
saltuser@salt-master:~$ sudo salt -G 'os_family:junos' junos.shutdown reboot=True router1: ---------- message: Successfully powered off/rebooted. out: True router2: ---------- message: Successfully powered off/rebooted. out: True
junos.shutdown状態関数の使用方法
Salt 状態ファイル内で状態機能を使用して、 salt.states.junos.shutdown
Junos OS を実行している 1 つ以上のデバイスを再起動または電源切ることができます。
以下のステート ファイルは、ステートが適用されているターゲット デバイス上のすべてのルーティング エンジンを直ちに再起動します。
saltuser@salt-master:~$ cat /srv/salt/junos_reboot.sls Reboot all REs now: junos.shutdown: - reboot: True
ターゲットに状態を適用すると、デバイスはすぐに操作を実行します。
saltuser@salt-master:~$ sudo salt 'router1' state.apply junos_reboot.sls router1: ---------- ID: Reboot all REs now Function: junos.shutdown Result: True Comment: Started: 21:54:51.158521 Duration: 1141.496 ms Changes: ---------- message: Successfully powered off/rebooted. out: True Summary for router1 ------------ Succeeded: 1 (changed=1) Failed: 0 ------------ Total states run: 1 Total run time: 1.141 s
同様に、以下の状態ファイルはターゲット・デバイスの電源をオフにします:
saltuser@salt-master:~$ cat /srv/salt/junos_shutdown.sls Shut down device running Junos OS: junos.shutdown: - shutdown: True
遅延を伴って再起動またはシャットダウン操作を実行する方法
この junos.shutdown
関数の既定の動作では、再起動またはシャットダウン操作がすぐに実行されます。操作を実行する前に遅延を要求することもできます。
再起動またはシャットダウン操作を指定した分数遅らせるには、オプションの in_min
パラメーターを、Junos OSを実行しているターゲットデバイスが操作を実行する前に待機する分数に設定します。次のコマンドは、2 分以内にすべてのルーティング エンジンの再起動を要求します。
saltuser@salt-master:~$ sudo salt 'router1' junos.shutdown reboot=True in_min=2 router1: ---------- message: Successfully powered off/rebooted. out: True
ターゲットデバイスは、システムにログインしているすべてのユーザーに、差し迫った再起動に関するメッセージをブロードキャストします。指定した時間が経過すると、システムが再起動します。
user@router1> *** System shutdown message from saltuser@router1 *** System going down in 2 minutes
指定した時間に再起動またはシャットダウン操作を実行する方法
この junos.shutdown
関数の既定の動作では、再起動またはシャットダウン操作がすぐに実行されます。特定の日時に操作をスケジュールすることもできます。特定の時刻に操作をスケジュールするには、次のいずれかの方法で指定できる文字列を受け取る パラメーターを含め at
ます。
now
- ソフトウェアをただちに停止または再起動します。+minutes
- 操作を実行するまでの時間 (分)。yymmddhhmm
- 操作を実行する絶対時間(年、月、日、時間、分で指定)。hh:mm
- 操作を実行する当日の絶対時刻で、24 時間表示で指定します。
プロキシミニオンサーバーでは、 を指定するshutdown=True
ときに パラメーターを使用するat
ためにJunos PyEZリリース2.3.0以降が必要です。
例えば、以下のSalt stateファイルは、すべてのルーティングエンジンのシステム再起動を当日の22:30にスケジュールしています。
reboot: junos.shutdown: - reboot: True - at: '22:30'
ターゲットに状態を適用すると、デバイスは指定された時間再起動をスケジュールします。
saltuser@salt-master:~$ sudo salt 'router1' state.apply junos_reboot.sls router1: ---------- ID: reboot Function: junos.shutdown Result: True Comment: Started: 17:23:27.368341 Duration: 173.988 ms Changes: ---------- message: Successfully powered off/rebooted. out: True Summary for router1 ------------ Succeeded: 1 (changed=1) Failed: 0 ------------ Total states run: 1 Total run time: 173.988 ms
コマンドを使用すると show system reboot
、デバイスで保留中の再起動を表示できます。
saltuser@salt-master:~$ sudo salt 'router1' junos.cli 'show system reboot' router1: ---------- message: reboot requested by saltuser at Wed Jul 31 22:30:00 2019 [process id 2313] out: True
Salt マスターコマンドラインで同じ操作を実行すると、Salt は CLI 入力PyYAML
を渡して、適切な Python データ型としてロードされるようにします。この場合、at
値が正しく解析されない可能性があります。引数で at
execution 関数を使用するにはjunos.shutdown
、次のいずれかの方法を使用して値を指定できます。
saltuser@salt-master:~$ sudo salt 'router1' junos.shutdown reboot=True at=\'22:30\' saltuser@salt-master:~$ sudo salt 'router1' junos.shutdown reboot=True at="'22:30'" saltuser@salt-master:~$ sudo salt 'router1' junos.shutdown reboot=True "at='22:30'" saltuser@salt-master:~$ sudo salt 'router1' junos.shutdown reboot=True at="22:30" --no-parse=at