Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

juniper.device.system Ansibleモジュールを使用して、Junosデバイスの停止、再起動、シャットダウンを行うことができます

juniper.device.system Ansible モジュールを使用して、Junos OSを実行しているデバイスまたはJunos OS Evolvedを実行しているデバイスの停止、再起動、またはシャットダウンします。

Ansibleを使用したデバイスの停止、再起動、またはシャットダウン

ジュニパーネットワークスは、Junos OSを実行しているデバイスまたはJunos OS Evolvedを実行しているデバイスの停止、再起動、またはシャットダウンに使用できるAnsibleモジュールを提供しています。 表1は 、利用可能なモジュールの概要を示しています。

表1:デバイスを停止、再起動、またはシャットダウンするモジュール

コレクション

モジュールセット

モジュール名

juniper.device

juniper.device

juniper.device.system

juniper.device.system モジュールを使用して、Junosデバイス上で以下の操作をリクエストできます。デフォルトでは、モジュールは要求された操作を直ちに実行し、デュアルルーティングエンジンまたはバーチャルシャーシ設定のすべてのルーティングエンジンでルーティングエンジンで操作を実行します。

  • システムの即時停止、再起動、またはシャットダウン

  • 停止、再起動、またはシャットダウン操作(オプションの遅延あり)

  • 特定の日時にスケジュールされた停止、再起動、またはシャットダウン操作

systemモジュールには、実行するアクションを定義する引数 action が 1 つ必要です。表2は、actionパラメーター値を定義し、各アクションと対応するCLIコマンドについて簡単に説明しています。"zeroize"アクションの詳細については、「juniper.device.system Ansibleモジュールを使用してJunosデバイスを工場出荷時のデフォルト状態に復元する」を参照してください。

表2:アクションパラメーター値

action

説明

同等の CLI コマンド

halt

Junos OSソフトウェアまたはJunos OS Evolvedソフトウェアを正常にシャットダウンしますが、システムの電源は維持します

request system halt

reboot

Junos OSソフトウェアまたはJunos OS Evolvedソフトウェアを再起動します

request system reboot

shutdown

Junos OSソフトウェアまたはJunos OS Evolvedソフトウェアを正常にシャットダウンし、ルーティングエンジンの電源を切ります

request system power-off

以下のAnsibleプレイブックでは、 juniper.device.system モジュールと action: reboot を使用して、指定されたインベントリグループ内のホスト上のすべてのルーティングエンジンを直ちに再起動します。

遅延または指定された時間に停止、再起動、またはシャットダウンを実行する方法

停止、再起動、またはシャットダウンの操作を指定した分数だけ遅らせることができます。遅延を追加するには、オプションの in_min パラメーターを、操作を実行する前にシステムが待機する必要がある分数に設定します。次のタスクは、30分以内にすべてのルーティングエンジンの再起動をリクエストします。

また、特定の時間に停止、再起動、またはシャットダウン操作をスケジュールすることもできます。時間をスケジュールするには、以下のいずれかの方法で指定できる文字列を受け取る at パラメーターを含めます。

  • now—ソフトウェアの停止、再起動、またはシャットダウンを直ちに開始します。

  • +minutes—要求されたアクションが開始されてからの分数。

  • yymmddhhmm—要求されたアクションを開始する絶対時間(年、月、日、時間、および分で指定)。

  • hh:mm—24時間制で指定された、要求されたアクションを開始する現在の日の絶対時刻。

以下のタスクでは、今日の22:30にすべてのルーティングエンジンのシステムシャットダウンをスケジュールします。

ターゲットルーティングエンジンを指定する方法

デフォルトでは、 juniper.device.system モジュールは、デュアルルーティングエンジンまたはバーチャルシャーシセットアップのすべてのルーティングエンジンで要求された操作を実行します。また、アプリケーションが接続されているルーティングエンジンでのみ操作を実行するように、またはアプリケーションが接続されているルーティングエンジンを除くすべてのルーティングエンジンで操作を実行するようにモジュールに指示することもできます。

ルーティングエンジンを指定するには、 all_reother_re パラメーターを使用します。 表 3 は、特定のルーティング エンジンで要求された操作を実行するために必要な all_re 値と other_re 値を要約したものです。

表3:ルーティングエンジンを指定するためのパラメーター

影響を受けるルーティングエンジン

all_re パラメータ

other_re パラメータ

すべてのルーティングエンジン(デフォルト)

省略するか、次のように設定します。 true

接続されたルーティングエンジンのみ

に設定 false

アプリケーションが接続されているルーティングエンジンを除くすべてのルーティングエンジン

に設定 true

デュアルルーティングエンジンまたはバーチャルシャーシセットアップのすべてのルーティングエンジンで操作を実行する必要があることを明示的に示すには、デフォルトの all_re: true 引数を含めます。

アプリケーションが接続されているルーティングエンジンのみで要求されたアクションを実行するには、 all_re: false 引数を含めます。

アプリケーションが接続されているルーティングエンジンを除くシステム内のすべてのルーティングエンジンで要求されたアクションを実行するには、 other_re: true 引数を含めます。

VMホストを再起動またはシャットダウンする方法

VMホストをサポートするルーティングエンジンを搭載したデバイスでは、Junos OSはLinuxベースのホスト(VMホスト)上で仮想マシン(VM)として実行されます。 juniper.device.system モジュールは vmhost 引数をサポートしており、これにより VM ホストを再起動またはシャットダウンできます。

action: reboot引数とvmhost: true引数を含めると、システムは、request vmhost reboot動作モードコマンドに対応する<request-vmhost-reboot> RPCを実行することにより、すべてのルーティングエンジン上のホストOSと互換Junos OS再起動します。

同様に、action: shutdown引数とvmhost: true引数を含めると、システムはrequest vmhost power-off動作モードコマンドに対応する<request-vmhost-poweroff> RPCを実行することにより、すべてのルーティングエンジン上のホストOSと互換Junos OSをシャットダウンします。

次のプレイブックでは、VMホストの再起動を実行し、ホストOSとゲストJunos OSの両方を再起動します。

例:Ansibleを使用してJunosデバイスを再起動する

juniper.device.system モジュールでは、Junos デバイスの停止、再起動、またはシャットダウンを行うことができます。この例では、systemモジュールを使用してJunosデバイスを再起動します。

要件

この例では、以下のハードウェアおよびソフトウェアコンポーネントを使用しています。

  • juniper.deviceコレクションがインストールされたAnsible 2.17以降を実行している構成管理サーバー

  • NETCONFを有効にし、適切な権限でユーザーアカウントが設定されたJunosデバイス

  • AnsibleコントロールノードとJunosデバイス上の適切なユーザーに設定されたSSHパブリックキー/プライベートキーペア

  • 必要なホストが定義された既存のAnsibleインベントリファイル

概要

この例では、 juniper.device.system モジュールを使用して Junos デバイスを再起動する Ansible プレイブックを紹介します。モジュールの action 引数の値は、ホストで実行する操作を定義します。

プレイブックからモジュールを呼び出す場合は、対話型プロンプトを使用して、ユーザーが指定されたデバイスを再起動する意図があることを確認することをお勧めします。ユーザーが意図せずプレイブックを実行し、チェックがない場合、影響を受けるデバイスを必要とするネットワークに悪影響を与える可能性があります。予防措置として、このプレイブックでは対話型プロンプトを使用して、ユーザーがデバイスを再起動する意図があることを確認します。プロンプトでは、ユーザーがコマンドラインに「yes」と手動で入力してモジュールを実行する必要があります。 Confirmation check タスクが失敗した場合、Ansible制御ノードは、そのデバイスのプレイ内の他のタスクをスキップします。

このプレイブックには、ansible.builtin.wait_forモジュールを利用して、デフォルトのNETCONFポート830を使用してJunosデバイスとのNETCONFセッションの確立を試みるCheck NETCONF connectivityタスクが含まれています。プレイブックの実行中に制御ノードがデバイスとのNETCONFセッションを確立できない場合、そのデバイスのプレイにある残りのタスクをスキップします。

再起動タスクは、確認とNETCONFチェックが成功した場合モジュール juniper.device.system を実行します。 action 引数は rebootに設定されており、ソフトウェアを再起動する必要があることを示しています。 in_min: 2 引数は、再起動コマンドを実行する前に指定された分数待機するようにモジュールに指示します。これにより、すべてのユーザーがシステムからログアウトする時間が確保されます。

このタスクは、モジュール結果を result 変数に格納し、2 つのハンドラーに通知します。 pause_for_reboot ハンドラーは、再起動操作が開始されてから指定された時間待機し、再起動が行われる前にデバイスがオンラインであることを wait_reboot ハンドラーが誤って検出しないようにします。その後、 wait_reboot ハンドラーはデバイスとのセッションの確立を試み、再起動後にデバイスがオンラインに戻ることを確認します。 wait_time_after_reboot 変数は、制御ノードがデバイスとの再接続を試みる時間の長さを定義します。

設定

Ansibleプレイブックの作成と実行

ステップバイステップの手順

juniper.device.system モジュールを使用して Junos デバイスを再起動するプレイブックを作成するには:

  1. プレイブックと、モジュールをローカルで実行するこのプレイの定型文を含めます。

  2. 必要な変数を定義またはインポートします。

  3. 対話型プロンプトを作成して、ユーザーが最初に意味を理解せずに誤ってモジュールを実行するのを防ぎます。

  4. ユーザーのインテントを確認するタスクを作成します。

  5. (オプション)NETCONF接続を検証するタスクを作成します。

  6. 指定した分数後にデバイスを再起動し、ハンドラーに通知するタスクを作成します。

  7. (オプション)応答を印刷するタスクを作成します。

  8. 再起動後に一時停止するハンドラーと、再起動後にデバイスがオンラインに戻ることを確認するハンドラーを作成します。

    ハンドラ名は、再起動タスクで参照されるものと同じである必要があります。

結果

Ansibleコントロールノードで、完成したプレイブックを確認します。プレイブックに意図したコードが表示されない場合は、この例の手順を繰り返してプレイブックを修正します。

プレイブックを実行する

手順

ステップバイステップの手順

プレイブックを実行するには:

  • 制御ノードで ansible-playbook コマンドを発行し、プレイブックパスと任意のオプションを指定します。

検証

再起動を確認する

目的

Junosデバイスが正常に再起動されたことを確認します。

アクション

プレイブックを実行するときに、各デバイスの wait_reboot タスクの出力を確認します。

意味

wait_reboot結果は、再起動後に制御ノードがデバイスとのセッションを正常に確立したかどうかを示します。結果が成功を示している場合、デバイスはオンラインです。

変更履歴テーブル

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

リリース
説明
1.0.3
juniper.deviceコレクションリリース1.0.3以降、systemモジュールはVMホストのシャットダウンをサポートします。