juniper.device.system Ansibleモジュールを使用して、Junosデバイスを工場出荷時のデフォルト状態に復元する
juniper.device.system Ansible モジュールを使用して、Junos OSを実行しているデバイスまたはJunos OS Evolvedを実行しているデバイスを工場出荷時のデフォルト設定に復元できます。
ジュニパーネットワークスは、Junosデバイスを工場出荷時のデフォルト設定に復元するために使用できるAnsibleモジュールを提供しています。 表1は 、モジュールの概要を示しています。 juniper.device コレクションの特定のモジュール セットを既に使用している場合は、そのセットの モジュール を使用します。
|
コレクション |
モジュールセット |
モジュール名 |
|---|---|---|
|
|
||
|
|
juniper.device.junos_config (zeroize オプション) |
このトピックでは、 juniper.device.system モジュールを使用して、Junos デバイスを工場出荷時のデフォルト状態にリセットする方法について説明します。 juniper.device.junos_config モジュールを使用してデバイスをリセットする方法については、 デバイスを工場出荷時のデフォルト設定に復元するを参照してください。
工場出荷時のデフォルト設定に戻す方法
juniper.device.systemモジュールを使用してデバイスを工場出荷時のデフォルト設定に戻すには、モジュールのaction引数を'zeroize'に設定します。デバイスを工場出荷時のデフォルト状態に復元した後、デバイスにアクセスするには、コンソールからrootとしてログインする必要があります。
action: "zeroize"引数を指定すると、モジュールはターゲットホストで<request-system-zeroize>RPCを実行します。このコマンドは、指定されたルーティング エンジンのすべての設定情報を削除し、デバイス上のすべてのキー値をリセットした後、デバイスを再起動して工場出荷時のデフォルト設定にリセットします。ゼロ化操作では、ディレクトリからファイルのリンクを解除することで、カスタマイズされた設定ファイルやログファイルを含むすべてのデータファイルが削除されます。また、SSH、ローカル暗号化、ローカル認証、IPsec、RADIUS、TACACS+、SNMP用のプレーンテキストパスワード、シークレット、プライベートキーなど、ユーザーが作成したファイルをすべてシステムから削除します。
対応する操作コマンドの詳細については、次を参照してください。
次のAnsibleプレイブックでは、action: "zeroize"でjuniper.device.systemモジュールを使用しています。このモジュールは、インベントリ グループ内の各ホストのすべてのルーティング エンジンを工場出荷時のデフォルト設定にリセットします。
---
- name: Restore Junos devices to factory-default state
hosts: dc1
connection: local
gather_facts: no
tasks:
- name: Restore all Routing Engines to factory-default state
juniper.device.system:
action: "zeroize"
デフォルトでは、 action: "zeroize" 操作は、デュアルルーティングエンジンセットアップのすべてのルーティングエンジンを工場出荷時のデフォルト設定にリセットします。Junos OS Evolvedは、常に両方のルーティングエンジンをゼロ化します。ただし、Junos OSを実行しているデバイスでは、アプリケーションが接続されているルーティングエンジンでのみ操作を実行するようにモジュールに指示することもできます。EXシリーズスイッチ(バーチャルシャーシEX8200を除く)またはQFXシリーズスイッチで構成されるバーチャルシャーシまたはバーチャルシャーシファブリック(VCF)では、接続されたメンバースイッチのみで動作します。
デュアルルーティングエンジン設定のすべてのルーティングエンジンで操作を実行する必要があることを明示的に示すには、デフォルトである all_re: True 引数を含めます。
tasks:
- name: Restore all Routing Engines to factory-default state
juniper.device.system:
action: "zeroize"
all_re: True
Junos OSを実行しているデバイスで、アプリケーションが接続されているルーティングエンジンのみで要求されたアクションを実行するには、 all_re: False 引数を含めます。
tasks:
- name: Restore connected Routing Engine to its factory-default state
juniper.device.system:
action: "zeroize"
all_re: False
すべての設定ファイルとログファイルを削除することに加えて、すべてのメモリとメディアもスクラブするようにモジュールに指示するには、 media: True 引数を含めます。 media: True 引数を含めることは、 request system zeroize media 動作モードコマンドを実行することと同じです。 media オプションは、ディスク、フラッシュメモリデバイス、リムーバブルUSBなど、システムに接続されているすべてのストレージデバイスをスクラブします。スクラブ プロセスの所要時間は、消去するメディアのサイズによって異なります。
tasks:
- name: Restore device to its factory-default state and scrub media
juniper.device.system:
action: "zeroize"
media: True
例:Ansibleを使用して工場出荷時のデフォルト設定に戻す
この例では、 juniper.device.system モジュールを使用して、Junosデバイスを工場出荷時のデフォルト設定に復元します。このモジュールは、あらゆるタイプの接続を使用して実行できます。ただし、デバイスをリセットすると、コンソールサーバーまたは コンソール ポートを介してのみrootとして再度アクセスできます。この例では、コンソール サーバーを介してデバイスに接続します。
要件
この例では、以下のハードウェアおよびソフトウェアコンポーネントを使用しています。
-
juniper.deviceコレクションがインストールされたAnsible 2.17以降を実行している構成管理サーバー -
コンソールサーバーを介してコンソールポートにアクセスでき、適切な権限でユーザーアカウントが設定されているJunosデバイス
-
必要なホストが定義された既存のAnsibleインベントリファイル
概要
この例では、 juniper.device.system モジュールを使用してインベントリグループ内の各ホストを工場出荷時のデフォルト設定にリセットするAnsibleプレイブックを作成します。モジュールの action 引数は "zeroize" に設定され、各ホストで <request-system-zeroize> RPC が実行されます。この操作は、ルーティング エンジン上のすべての設定情報を削除し、デバイス上のすべてのキー値をリセットした後、デバイスを再起動して工場出荷時のデフォルト状態にリセットします。
request system zeroizeコマンドは、ディレクトリからファイルのリンクを解除することで、カスタマイズされた設定ファイルやログファイルを含むすべてのデータファイルを削除します。また、このコマンドは、SSH、ローカル暗号化、ローカル認証、IPsec、RADIUS、TACACS+、SNMPのすべてのプレーンテキストパスワード、シークレット、秘密鍵を含む、ユーザーが作成したファイルをすべてシステムから削除します。
プレイブックからモジュールを呼び出す場合は、対話型プロンプトを使用して、ユーザーがデバイスをリセットする意図があることを確認することをお勧めします。ユーザーが意図せずプレイブックを実行し、チェックを実装しない場合、デバイスが元に戻り、それらのデバイスを必要とするネットワークが中断する可能性があります。予防措置として、このプレイブックでは対話型プロンプトを使用して、ユーザーがデバイスをリセットする意図があることを確認します。プレイブックでは、モジュールを実行するために、ユーザーがコマンドラインに「yes」と手動で入力する必要があります。 Confirmation check タスクが失敗した場合、Ansible制御ノードは、そのデバイスのプレイ内の他のタスクをスキップします。
プレイブックは、確認チェックが成功した場合モジュール juniper.device.system を実行します。モジュールは、各ホストの Ansible インベントリ ファイルで定義されている指定されたポート上のコンソール サーバーを介して Junos デバイスに接続します。プレイブックは、デバイスパスワードの入力を求め、それを変数に格納します。再起動後、デバイスにアクセスするには、コンソールからrootとしてログインする必要があります。
設定
Ansibleプレイブックの作成と実行
ステップバイステップの手順
juniper.device.systemモジュールを使用してJunosデバイスを工場出荷時のデフォルト設定に復元するプレイブックを作成するには:
-
プレイブックと、モジュールをローカルで実行するこのプレイの定型文を含めます。
--- - name: Restore Junos device to factory-default configuration settings hosts: dc1a_console connection: local gather_facts: no
-
モジュールが誤って実行されないように、対話型プロンプトを作成します。
vars_prompt: - name: reset_confirmation prompt: > This playbook resets hosts to factory-default configurations! Enter 'yes' to continue. default: "no" private: no -
他の方法でユーザーの認証情報を渡さない場合は、デバイスパスワードの対話型プロンプトを作成します。
- name: "device_password" prompt: "Device password" private: yes -
接続パラメーターを定義します。
vars: password: "{{ device_password }}" mode: "telnet" port: "{{ ansible_port }}" -
ユーザーのインテントを確認するタスクを作成します。
tasks: - name: Confirmation check fail: msg="Playbook run confirmation failed" when: reset_confirmation != "yes" -
デバイス上のすべてのルーティングエンジンを工場出荷時のデフォルト設定にリセットするタスクを作成します。
- name: Restore all Routing Engines to factory-default configuration juniper.device.system: action: "zeroize" timeout: 120 register: result -
(オプション)応答を印刷するタスクを作成します。
- name: Print response ansible.builtin.debug: var: result
結果
Ansibleコントロールノードで、完成したプレイブックを確認します。プレイブックに意図したコードが表示されない場合は、この例の手順を繰り返してプレイブックを修正します。
---
- name: Restore Junos device to factory-default configuration settings
hosts: dc1a_console
connection: local
gather_facts: no
vars_prompt:
- name: reset_confirmation
prompt: >
This playbook resets hosts to factory-default configurations!
Enter 'yes' to continue.
default: "no"
private: no
- name: "device_password"
prompt: "Device password"
private: yes
vars:
password: "{{ device_password }}"
mode: "telnet"
port: "{{ ansible_port }}"
tasks:
- name: Confirmation check
fail: msg="Playbook run confirmation failed"
when: reset_confirmation != "yes"
- name: Restore all Routing Engines to factory-default configuration
juniper.device.system:
action: "zeroize"
timeout: 120
register: result
- name: Print response
ansible.builtin.debug:
var: result
プレイブックを実行する
プレイブックを実行するには:
-
制御ノードで
ansible-playbookコマンドを発行し、プレイブックパスと必要なオプションを指定します。root@ansible-cn:~/ansible# ansible-playbook ansible-pb-junos-zeroize.yaml This playbook resets hosts to factory-default configurations! Enter 'yes' to continue. [no]: yes Device password: PLAY [Restore Junos device to factory-default configuration settings] TASK [Confirmation check] ********************************************** skipping: [dc1a-console.example.net] TASK [Restore all Routing Engines to factory-default configuration] **** changed: [dc1a-console.example.net] TASK [Print response] ************************************************** ok: [dc1a-console.example.net] => { "result": { "action": "zeroize", "all_re": true, "changed": true, "failed": false, "media": false, "msg": "zeroize successfully initiated.", "other_re": false, "reboot": false "vmhost": false } } PLAY RECAP ************************************************************ dc1a-console.example.net : ok=2 changed=1 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0