Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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

ジュニパーネットワークスのAnsibleモジュールを使用して、Junosデバイスの停止、再起動、またはシャットダウンを行います。

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

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

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

コンテンツ セット

モジュール名

juniper.device 徴収

system

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

  • システムの即時停止、リブート、またはシャットダウン

  • オプションの遅延を伴う停止、再起動、またはシャットダウン操作

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

system モジュールには、モジュールが実行するアクションを定義する 1 つの引数 action が必要です。表 2 は、デバイスの停止、再起動、またはシャットダウンに必要な action パラメーター値を定義し、各アクションの簡単な説明と対応する CLI コマンドを提供します。"zeroize" アクションの詳細については、Ansible を使用して Junos デバイスを工場出荷時のデフォルト設定に復元するを参照してください。

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

actionパラメータの値

形容

同等の CLI コマンド

"halt"

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

request system halt

"reboot"

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

request system reboot

"shutdown"

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

request system power-off

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

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

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

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

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

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

  • yymmddhhmm- 要求されたアクションを開始する絶対時間で、年、月、日、時間、分で指定します。

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

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

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

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

ルーティング エンジンを指定するには、 all_re および other_re パラメーターを使用します。 表 3 は、特定のルーティング エンジンで要求された操作を実行するために必要な all_reother_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)として実行されます。 system モジュールは、VM ホストの再起動またはシャットダウンを可能にする vmhost 引数をサポートしています。

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 デバイスを再起動します。

必要条件

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

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

  • NETCONF が有効な Junos デバイスと、適切なパーミッションが設定されたユーザー アカウント

  • Ansible制御ノードとJunosデバイス上の適切なユーザー向けに設定されたSSH公開/秘密キーペア

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

概要

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

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

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

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

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

構成

Ansible Playbook の作成と実行

手順

system モジュールを使用して Junos デバイスを再起動するプレイブックを作成するには、次の手順に従います。

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

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

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

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

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

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

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

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

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

業績

Ansible制御ノードで、完了したプレイブックを確認します。プレイブックに目的のコードが表示されない場合は、この例の手順を繰り返してプレイブックを修正します。

プレイブックを実行する

プロシージャ

手順

Playbook を実行するには、次のようにします。

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

検証

再起動の確認

目的

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

アクション

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

意味

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

変更履歴

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

解放
形容
1.0.3
juniper.device コレクション リリース 1.0.3 以降、 system モジュールでは VM ホストのシャットダウンがサポートされています。