Junos OSコレクション、役割、およびモジュール向けのAnsibleについて
概要 ジュニパーネットワークスは、Junosデバイスの管理に使用できるAnsibleモジュールを提供しています。
Junosデバイスを管理するためのAnsibleコレクション、役割、およびモジュールについて
Ansibleは、インフラストラクチャ構成管理に使用されるIT自動化フレームワークです。コードの個別の単位である Ansible モジュールを使用して、管理対象ノードで特定の機能を実行します。リモートホストで個々のモジュールを実行してアドホックタスクを実行したり、プレイブックを使用してモジュールを実行したりできます。
Ansibleおよびジュニパーネットワークスは、Junosデバイスの管理に使用できるAnsibleモジュールを提供しています。ジュニパーネットワークスのAnsibleモジュールは、 Ansible Galaxy リポジトリでホストされているAnsibleの役割とコレクションを通じてグループ化され、配布されます。 表 1 は、Junos デバイスの管理に使用できるさまざまなコンテンツ セットの概要を示しています。
コンテンツセット |
形容 |
Ansibleリリース |
---|---|---|
Ansible基本インストールに含まれるAnsibleモジュール。 Ansible 2.10では、コアモジュールは基本インストールからAnsibleのコレクション |
Ansible 2.1からAnsible 2.9まで |
|
ジュニパーネットワークスがオープンソースプロジェクトとして提供・管理しているJunosデバイスを管理するためのコレクション。 |
Ansible 2.10 以降 |
|
ジュニパーネットワークスが提供、保守、サポートするJunosデバイスを管理する役割。 このロールは、コレクションに置き換えられます |
Ansible 2.1 以降 |
|
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 デバイス間の通信を示しています。
コレクションまたは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 キーを使用してデバイスで認証するため、プレイブックで資格情報を明示的に提供しません。
--- - name: Get Device Facts hosts: dc1 connection: local gather_facts: no tasks: - name: Retrieve facts from a Junos device juniper.device.facts: savedir: "{{ playbook_dir }}" - name: Print version debug: var: junos.version
同様に、次のプレイブックは、 Juniper.junos
ロールの juniper_junos_facts
モジュールを実行して同じ操作を実行します。
--- - name: Get Device Facts hosts: dc1 connection: local gather_facts: no roles: - Juniper.junos tasks: - name: Retrieve facts from a Junos device juniper_junos_facts: savedir: "{{ playbook_dir }}" - name: Print version debug: var: junos.version
コマンド ラインでアドホック操作を実行することもできます。次のコマンドは、コレクションのfacts
モジュールを実行し、juniper.device
インベントリ グループ dc1 内のホストからデバイス ファクトを取得します。
user@host$ ansible --connection local -i production dc1 -m juniper.device.facts
ジュニパーネットワークス juniper.device Collection
ジュニパーネットワークスは、 juniper.device
Ansible Content Collectionを提供しています。このコレクションは、 Ansible Galaxy のウェブサイトでホストされており、Junosデバイスの管理を可能にするAnsibleモジュールが含まれています。
表 2 に、コレクション内のjuniper.device
モジュールの概要を示します。コレクションの初期リリースでは、コレクション モジュールは、コレクション モジュールでサポートされていないパラメーターを除き、provider
ロール内のJuniper.junos
対応するモジュールと同じ機能とパラメーターを保持します。
モジュールの最新のリスト、ドキュメント、および使用例については、 https://ansible-juniper-collection.readthedocs.io/ を参照してください。
juniper.deviceモジュール名 |
形容 |
---|---|
|
JunosデバイスでCLIコマンドを実行し、出力をローカルに保存します。 |
|
Junos デバイスの設定を管理します。 |
|
Junos OSのバージョン、シリアル番号、ハードウェアモデル番号などのデバイス固有の情報をリモートホストから取得します。 |
|
AnsibleからJunos Snapshot Administrator in Python(JSNAPy)テストを実行します。 |
|
|
|
JunosデバイスでパスMTU検出を実行します。 |
|
Junos OS RPCを実行します。 |
|
Junos OSソフトウェア パッケージをインストールし、Junosデバイスを再起動します。 |
|
デバイスのリセット、再起動、シャットダウンなどのシステム操作をJunosデバイス上で実行します。 |
|
クラスター対応SRXシリーズファイアウォール用のSRXシリーズシャーシクラスターを作成します。 |
|
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.junos
、 Juniper.junos
ロールには拡張されたモジュール セットが含まれています。新しいモジュールはそれぞれ、1 つ以上の既存のモジュールの機能を置き換えます。拡張モジュールは、接続および認証パラメーターの共通セット、コア・モジュールと同じ接続および認証関連のオプションを指定できる別名、およびプロバイダー・ディクショナリ内でパラメーターを指定する機能をサポートします。
モジュール名 |
形容 |
リリース 2.0.0 で非推奨のモジュール |
---|---|---|
|
JunosデバイスでCLIコマンドを実行し、出力をローカルに保存します。 |
|
|
Junos デバイスの設定を管理します。 |
|
|
Junos OSのバージョン、シリアル番号、ハードウェアモデル番号などのデバイス固有の情報をリモートホストから取得します。 |
|
|
AnsibleからJunos Snapshot Administrator in Python(JSNAPy)テストを実行します。 |
|
|
|
|
|
JunosデバイスでパスMTU検出を実行します。 |
|
|
Junos OS RPCを実行します。 |
|
|
Junos OSソフトウェア パッケージをインストールし、Junosデバイスを再起動します。 |
|
|
デバイスのリセット、再起動、シャットダウンなどのシステム操作をJunosデバイス上で実行します。 |
|
|
クラスター対応SRXシリーズファイアウォール用のSRXシリーズシャーシクラスターを作成します。 |
|
|
Junos PyEZ動作テーブルとビューを使用して、Junosデバイスから運用情報を取得します。 |
|
変更履歴テーブル
機能のサポートは、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がプラットフォームでサポートされているかどうかを判断します。
Juniper.junos
、
Juniper.junos
ロールには拡張されたモジュール セットが含まれています。