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を使用してデバイスを停止、再起動、またはシャットダウンする

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

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

コンテンツセット

モジュール名

juniper.device コレクション

system

Juniper.junos 役割

juniper_junos_system

メモ:

リリース 2.0.0 以降Juniper.junosjuniper_junos_systemモジュールは および junos_zeroize モジュールの機能をjunos_shutdown置き換えます。

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

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

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

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

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

表 2: システムおよび juniper_junos_system アクションのパラメーター値

パラメータの値action

説明

同等の CLI コマンド

"halt"

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

request system halt

"reboot"

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

request system reboot

"shutdown"

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

request system power-off

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

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

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

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

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

  • +minutes- リクエストされたアクションが開始されてからの時間 (分)。

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

  • hh:mm- 要求されたアクションを開始する現在の日の絶対時刻(24 時間表示)。

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

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

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

ルーティング エンジンを指定するには、 および other_re パラメーターを使用しますall_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)として動作します。systemおよび juniper_junos_system モジュールは、vmhostVMホストを再起動できる引数をサポートしています。引数 と 引数を含めるaction: "reboot"と、システムは、 運用モードコマンドに対応するrequest vmhost rebootRPCを実行して<request-vmhost-reboot>、すべてのルーティングエンジンでホストOSとvmhost: True互換性のあるJunos OSを再起動します。

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

例:Ansible を使用した Junos デバイスの再起動

コレクション内のjuniper.deviceモジュールによってsystem、Junos デバイスを停止、再起動、またはシャットダウンできます。この例では、systemモジュールを使用してJunosデバイスを再起動します。

要件

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

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

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

  • Ansible制御ノードとJunosデバイスで適切なユーザーに対して構成されたSSH公開/秘密鍵のペア

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

概要

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

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

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

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

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

構成

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

手順

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

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

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

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

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

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

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

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

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

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

結果

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

プレイブックの実行

手順

手順

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

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

検証

再起動の確認

目的

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

アクション

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

意味

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

リリース履歴テーブル
リリース
説明
2.0.0
リリース 2.0.0 以降 Juniper.junosjuniper_junos_systemモジュールは および junos_zeroize モジュールの機能を junos_shutdown置き換えます。