Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos OSコレクション、役割、およびモジュール向けのAnsibleについて

概要 ジュニパーネットワークスは、Junosデバイスの管理に使用できるAnsibleモジュールを提供しています。

Junosデバイスを管理するためのAnsibleコレクション、役割、およびモジュールについて

Ansibleは、インフラストラクチャ構成管理に使用されるIT自動化フレームワークです。コードの個別の単位である Ansible モジュールを使用して、管理対象ノードで特定の機能を実行します。リモートホストで個々のモジュールを実行してアドホックタスクを実行したり、プレイブックを使用してモジュールを実行したりできます。

Ansibleおよびジュニパーネットワークスは、Junosデバイスの管理に使用できるAnsibleモジュールを提供しています。ジュニパーネットワークスのAnsibleモジュールは、 Ansible Galaxy リポジトリでホストされているAnsibleの役割とコレクションを通じてグループ化され、配布されます。 表 1 は、Junos デバイスの管理に使用できるさまざまなコンテンツ セットの概要を示しています。

表 1: Junos デバイスを管理するための Ansible コンテンツ セット

コンテンツセット

説明

Ansibleリリース

Ansibleコアモジュール

Ansible基本インストールに含まれるAnsibleモジュール。

Ansible 2.10では、コアモジュールは基本インストールからAnsibleのコレクション junipernetworks.junos に移動しました。

Ansible 2.1からAnsible 2.9まで

juniper.device コレクション

ジュニパーネットワークスがオープンソースプロジェクトとして提供・管理しているJunosデバイスを管理するためのコレクション。

Ansible 2.10 以降

Juniper.junos 役割

ジュニパーネットワークスが提供、保守、サポートするJunosデバイスを管理する役割。

このロールは、コレクションに置き換えられます juniper.device

Ansible 2.1 以降

junipernetworks.junos コレクション

Ansibleが提供、保守、サポートするJunosデバイスを管理するためのコレクション。

Ansible 2.10 以降

Ansibleロールは、ホストを構成するためのタスクとサポート変数、ファイル、テンプレート、およびモジュールのセットです。Ansible 2.10以降、Ansibleは、Ansible基本インストールの一部として含まれていないAnsibleコンテンツを配布するための形式であるAnsibleコンテンツコレクションをサポートしています。Ansibleコレクションには、モジュール、プレイブック、プラグイン、ロールなど、幅広いコンテンツを含めることができます。Ansibleコレクションにも独自のリポジトリがあり、Ansible基本インストールとは別に開発およびリリースできます。

Ansible 2.9以前のバージョンでは、Juniper Networks Juniper.junos の役割で提供されるモジュールを使用するか、Ansible基本インストールの一部として提供されるコアモジュールを使用して、Junosデバイスを管理できます。Ansible 2.10 以降、ロールと Ansible コア モジュールは、 Juniper.junos 対応するコレクションに置き換えられます。ジュニパーネットワークス juniper.device のコレクションの導入により、ロール内のモジュールはコレクション内の Juniper.junos 新しい名前で複製されたため、パラメーターを除き provider 、元のモジュールと同じ機能とパラメーターが維持されます。ロールは Juniper.junos コレクションと juniper.device 共存でき、今後のリリースでも機能しますが、新しい機能は今後コレクションに追加されるだけなので、コレクションを使用することをお勧めします juniper.device

Junos デバイスでモジュールを実行する方法

Ansible Galaxy リポジトリでホストされているコレクションとロールを使用するには、まず制御ノードに Ansible をインストールしてから、コレクションまたはロールをインストールする必要があります。コレクションまたは役割のインストールjuniper.deviceの詳細については、「Ansible for Junos OS サーバーの要件」を参照してください。Juniper.junos

Ansibleモジュールは、管理対象ノードで操作を実行できます。通常、Ansible制御ノードはモジュールをマネージドノードに送信し、そこで実行されてから削除されます。このシナリオでは、マネージドノードにモジュールを実行する機能が必要です。ほとんどの Ansible モジュールは Python で記述されているため、Ansible では通常、マネージド ノードに Python が必要です。

ただし、コレクション内のジュニパーネットワークスモジュール juniper.device とロールでは Juniper.junos 、マネージドノードにPythonは必要ありません。通常の操作とは対照的に、Ansible制御ノード上でローカルにモジュールを実行し、モジュールはJunos PyEZとNETCONF上でJunos XML APIを使用してマネージドノードとインターフェイスします。この実行方法では、Ansibleを使用して、サポートされているJunosデバイスを管理できます。 図 1 は、Ansible 制御ノードと管理対象 Junos デバイス間の通信を示しています。

図 1: Junos デバイスと Ansible Communication with a Junos Deviceの Ansible 通信

コレクションまたはJuniper.junosロール内のjuniper.deviceモジュールを使用するには、プレイブックまたはコマンドで次のことを行う必要があります。

  • コレクションまたはロールを指定する - コレクションまたはロールを指定するには、 または roles キーを再生に含めcollectionsます。または、キーをcollections省略し、代わりに完全修飾コレクション名 (FQCN) でコレクションの内容を参照することもできます (この方法をお勧めします)。

  • 制御ノードでモジュールをローカルで実行する - Ansibleモジュールをローカルで実行するには、たとえば、プレイブックに含めるか--connection local、コマンドラインに含めることでconnection: local、パラメーターlocalを として定義connectionします。

    メモ:

    を使用すると connection: local、Ansibleは、接続を必要とするプレイ内のタスクごとに、デバイスへの個別の接続を確立します。 juniper.device コレクションモジュールは の使用 connection: juniper.device.pyezもサポートしており、モジュールはローカルで実行されますが、代わりにプレイ内のすべてのタスクに対してデバイスへの単一の永続的な接続を確立します。

  • 管理対象デバイスに接続するための適切な接続および認証情報を提供する - 詳細については、以下を参照してください。

Ansibleモジュールは、管理対象Junosデバイスにアクセスできる任意のユーザーアカウントを使用して実行できます。Ansibleモジュールを実行すると、Junos OSユーザーアカウントのアクセス権限が適用され、Junos OSユーザーアカウント用に構成されたクラスによって権限が決まります。したがって、ユーザーが設定変更をデバイスにロードするモジュールを実行する場合、そのユーザーには設定の関連部分を変更する権限が必要です。

次のプレイブックは、 juniper.device コレクションの facts モジュールを実行してデバイスのファクトを取得し、ファイルに保存します。この例では、既定の場所にある既存の SSH キーを使用してデバイスで認証するため、プレイブックで資格情報を明示的に提供しません。

同様に、次のプレイブックは、 Juniper.junos ロールの juniper_junos_facts モジュールを実行して同じ操作を実行します。

コマンド ラインでアドホック操作を実行することもできます。次のコマンドは、コレクションのfactsモジュールを実行し、juniper.deviceインベントリ グループ dc1 内のホストからデバイス ファクトを取得します。

ジュニパーネットワークス juniper.device Collection

ジュニパーネットワークスは、 juniper.device Ansible Content Collectionを提供しています。このコレクションは、Ansible Galaxy のウェブサイトでホストされており、Junosデバイスの管理を可能にするAnsibleモジュールが含まれています。

表 2 に、コレクション内のjuniper.deviceモジュールの概要を示します。コレクションの初期リリースでは、コレクション モジュールは、コレクション モジュールでサポートされていないパラメーターを除き、providerロール内のJuniper.junos対応するモジュールと同じ機能とパラメーターを保持します。

モジュールの最新のリスト、ドキュメント、および使用例については、 https://ansible-juniper-collection.readthedocs.io/en/latest/ を参照してください。

表2:juniper.deviceコレクションモジュール

juniper.deviceモジュール名

説明

command

JunosデバイスでCLIコマンドを実行し、出力をローカルに保存します。

config

Junos デバイスの設定を管理します。

facts

Junos OSのバージョン、シリアル番号、ハードウェアモデル番号などのデバイス固有の情報をリモートホストから取得します。

jsnapy

AnsibleからJunos Snapshot Administrator in Python(JSNAPy)テストを実行します。

ping

ping Junosデバイスで コマンドを実行します。

pmtud

JunosデバイスでパスMTU検出を実行します。

rpc

Junos OS RPCを実行します。

software

Junos OSソフトウェア パッケージをインストールし、Junosデバイスを再起動します。

system

デバイスのリセット、再起動、シャットダウンなどのシステム操作をJunosデバイス上で実行します。

srx_cluster

クラスター対応SRXシリーズファイアウォール用のSRXシリーズシャーシクラスターを作成します。

table

Junos PyEZ動作テーブルとビューを使用して、Junosデバイスから運用情報を取得します。

ジュニパーネットワークスJuniper.junosの役割

ジュニパーネットワークスは、 Juniper.junos Ansibleロールを提供しています。これはAnsible Galaxy のウェブサイトでホストされており、Junosデバイスの管理を可能にするAnsibleモジュールが含まれています。Ansible 2.10 以降では、コレクションが juniper.device ロールよりも優先されます Juniper.junos 。コレクション内のモジュールには、パラメーターを除き、 provider ロール内のモジュールと同じ機能とパラメーターがあります。コレクションとロールは同じプラットフォーム上で共存でき、今後のリリースでもモジュールを引き続き使用できます Juniper.junos が、新しい機能は今後コレクションに追加されるだけなので、コレクションを使用することをお勧めします juniper.device

表 3 は、ロール内のモジュールをまとめた Juniper.junos ものです。モジュールの最新のリスト、ドキュメント、および使用例については、 https://junos-ansible-modules.readthedocs.io/en/latest/ を参照してください。

メモ:

リリース 2.0.0 以降 Juniper.junosJuniper.junos ロールには拡張されたモジュール セットが含まれています。新しいモジュールはそれぞれ、1 つ以上の既存のモジュールの機能を置き換えます。拡張モジュールは、接続および認証パラメーターの共通セット、コア・モジュールと同じ接続および認証関連のオプションを指定できる別名、およびプロバイダー・ディクショナリ内でパラメーターを指定する機能をサポートします。

表 3: Juniper.junos ロールモジュール

モジュール名

説明

リリース 2.0.0 で非推奨のモジュール

juniper_junos_command

JunosデバイスでCLIコマンドを実行し、出力をローカルに保存します。

junos_cli

juniper_junos_config

Junos デバイスの設定を管理します。

junos_commit

junos_get_config

junos_install_config

junos_rollback

juniper_junos_facts

Junos OSのバージョン、シリアル番号、ハードウェアモデル番号などのデバイス固有の情報をリモートホストから取得します。

junos_get_facts

juniper_junos_jsnapy

AnsibleからJunos Snapshot Administrator in Python(JSNAPy)テストを実行します。

junos_jsnapy

juniper_junos_ping

ping Junosデバイスで コマンドを実行します。

junos_ping

juniper_junos_pmtud

JunosデバイスでパスMTU検出を実行します。

junos_pmtud

juniper_junos_rpc

Junos OS RPCを実行します。

junos_rpc

juniper_junos_software

Junos OSソフトウェア パッケージをインストールし、Junosデバイスを再起動します。

junos_install_os

juniper_junos_system

デバイスのリセット、再起動、シャットダウンなどのシステム操作をJunosデバイス上で実行します。

junos_shutdown

junos_zeroize

juniper_junos_srx_cluster

クラスター対応SRXシリーズファイアウォール用のSRXシリーズシャーシクラスターを作成します。

junos_srx_cluster

juniper_junos_table

Junos PyEZ動作テーブルとビューを使用して、Junosデバイスから運用情報を取得します。

junos_get_table

リリース履歴テーブル
リリース
説明
2.0.0
リリース 2.0.0 以降 Juniper.junosJuniper.junos ロールには拡張されたモジュール セットが含まれています。