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リリース

juniper.device 徴収

ジュニパーネットワークスがオープンソース プロジェクトとして提供および管理している、Junos デバイス管理用コレクション。

Ansible 2.10 以降

junipernetworks.junos 徴収

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

Ansible 2.10 以降

Ansibleコアモジュール
(非推奨)

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

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

Ansible 2.1 から Ansible 2.9 まで

Juniper.junos 役割
(非推奨)

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

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

Ansible 2.1 以降

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

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

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

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

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

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

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

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

  • [コレクションまたは FQCN を指定] - コレクションを指定するには、プレイに collections キーを含めます。または、 collections キーを省略し、代わりに完全修飾コレクション名 (FQCN) でコレクション コンテンツを参照することもできます (これは推奨される方法です)。

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

    手記:

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

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

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

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

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

ジュニパーネットワークスjuniper.deviceコレクション

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

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

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

表2:juniper.device収集モジュール

juniper.device モジュール名

形容

command

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

config

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

facts

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

jsnapy

Ansible を使用して Python で Junos Snapshot Administrator(JSNAPy)テストを実行します。

file_copy

ローカルのAnsible制御ノードとJunosデバイス間でファイルを転送します。

ping

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

pmtud

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

rpc

Junos OS RPCを実行します。

software

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

system

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

srx_cluster

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

table

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