Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Ansible と Junos PyEZ テーブルを使用して Junos OS を実行しているデバイスから運用情報を取得する

モジュールの概要

Junos PyEZ 運用(op)テーブルは、複雑な運用コマンド出力から情報を抽出するシンプルで効率的な方法を提供します。ジュニパーネットワークスは、Ansible プレイブック内の Junos PyEZ op テーブルを活用できる Ansible モジュールを提供しています。 表 1 は、モジュールの概要を示しています。

表 1:Junos PyEZ テーブル モジュール

コンテンツ セット

モジュール名

juniper.device コレクション

table

Juniper.junos 役割

juniper_junos_table

メモ:

Juniper.junosリリース 2.0.0 以降、モジュールはjuniper_junos_tableモジュールの機能をjunos_get_table置き換えます。

メモ:

モジュールは、構成のテーブルとビューでは動作しません。

Junos PyEZ テーブルについて

Junos PyEZ は、Junos OS を実行するデバイスの管理と自動化を可能にする Python 向けのマイクロフレームワークです。Junos PyEZ は 、テーブルビューと呼ばれるシンプルな YAML 定義を使用して、Junos OS を実行するデバイスから運用コマンドの出力と設定データを取得してフィルター処理します。

Junos PyEZ 運用(op)テーブルは、運用コマンドまたは RPC の出力から情報を抽出します。Junos PyEZ jnpr.junos.op モジュールには、一般的な RPC の定義済みテーブルおよびビュー定義が含まれています。カスタムテーブルとビューを作成することもできます。

Ansible を使用して Junos OS を実行しているデバイスを管理する場合、 table モジュールは juniper_junos_table Junos PyEZ テーブルを使用してデバイスからデータを取得できます。モジュールは、Junos PyEZ ディストリビューションに含まれている定義済みの運用テーブルとビューを参照することも、Ansible 制御ノードに常駐するユーザー定義のテーブルとビューを参照することもできます。

Junos PyEZ テーブルおよびビューの一般的な情報については、 Junos PyEZ 開発者ガイドの以下のセクションおよび関連ドキュメントを参照してください。

Junos PyEZ テーブルでジュニパーネットワークス Ansible モジュールを使用する方法

and juniper_junos_table モジュールにはtable、次の引数を含め、使用する Table を指定できます。

  • file— Junos PyEZ テーブルとビューを定義する YAML ファイルのファイル名。

  • path—(オプション)テーブルとビューの定義を持つ YAML ファイルを含むディレクトリへのパス。デフォルトのファイル パスは、 jnpr/junos/ op ディレクトリの Junos PyEZ インストール パスに存在する、定義済みの Junos PyEZ op テーブルの場所です。

  • table—(オプション)データの取得に使用されるテーブルの名前。このオプションは、ファイルに複数の表定義が含まれている場合、またはファイルに名前に「表」が含まれていない単一の表が含まれている場合にのみ必要です。

たとえば、次のタスクは、playbook ディレクトリにある fpc.yaml ファイルで定義されているカスタム テーブルFPCTableを使用してデータを取得します。

モジュールの応答には、テーブルによって返される項目のリストを含むキーが含まれています resource 。各リスト項目は、ビューで定義されたフィールド名と、対応する各フィールドのデータから抽出された値を含む辞書です。

Junos PyEZ ディストリビューションの arp.yml ファイルで、 ArpTable ArpView次の定義済みの表とビューを考慮します。ArpTableこのオプションを使用<no-resolve/>して RPC を実行<get-arp-table-information>します。これは CLI コマンドとshow arp no-resolve同じです。対応する View は、応答内の各項目<arp-table-entry>の MAC アドレス、IP アドレス、インターフェイス名を抽出します。

次の Ansible プレイブックは、Junos OS を実行するデバイスから ARP(アドレス解決プロトコル)情報を取得するために使用ArpTableするモジュールを実行tableします。ArpTable Junos PyEZ ディストリビューションに含まれており、事前定義された Junos PyEZ op テーブルのデフォルト ディレクトリにあるため、pathモジュール引数はファイルの場所を指定する必要はありません。さらに、ファイルで定義され、その名前に「テーブル」が含まれている唯一のテーブルであるためArpTabletable引数は、テーブルを指定する必要はありません。

簡潔にするために切り捨てられたプレイブックの出力には、デバイスから返される各項目 <arp-table-entry> のビューで定義されている対応するフィールドが含まれています。

次の Ansible プレイブックでは、事前定義済みの Junos PyEZ 運用テーブルを活用して、 OspfInterfaceTable Junos OS を実行しているデバイス上の OSPF インターフェイスに関する情報を取得します。 ospf.yml ファイルは複数のテーブルとビューを定義するため、モジュール呼び出しには使用するテーブルを指定する引数が含まれています table

RPC 引数の指定

Junos PyEZ 動作テーブルには、そのテーブルによって実行される RPC の既定のコマンド オプションと引数を定義するオプション args のキーがあります。アプリケーションは、ユーザーがデフォルトをオーバーライドしない限り、デフォルト オプションを使用して RPC を実行します。Junos PyEZ アプリケーションでは、既定のコマンド オプションをオーバーライドするか、メソッドを呼び出すときに追加のオプションと引数を RPC に get() 渡すことができます。

tableまた、and juniper_junos_table モジュールを使用すると、テーブルで定義された既定のコマンド オプションをオーバーライドしたり、引数を使用して追加のオプションや引数を RPC にkwargs渡したりすることもできます。値はkwargsコマンド オプションと値の辞書で、RPC と RPC が実行されるデバイスでサポートされている必要があります。

たとえば、ethport.yml ファイルの事前定義された Junos PyEZ op Table EthPortTable は、コマンド オプションを使用mediaして RPC を実行<get-interface-information>し、インターフェイス名の指定された正規表現に一致するすべてのインターフェイスの情報を返します。

次の Ansible プレイブックではEthPortTable、Junos OS を実行しているデバイス上のインターフェイスに関する情報を抽出します。引数にはkwargsinterface_name: "ge-1/0/0"のデフォルトinterface_nameEthPortTableオーバーライドし、ge-1/0/0 インターフェイスのみの要求されたフィールドを取得するようモジュールに指示します。

Junos PyEZ テーブルのデフォルトおよびユーザー提供のコマンド オプションと引数の詳細については、「Junos PyEZ 運用テーブルの定義」および「Junos PyEZ 運用テーブルとビューの使用」を参照してください。

リリース履歴テーブル
リリース
説明
2.0.0
Juniper.junos リリース 2.0.0 以降、juniper_junos_table モジュールは、junos_get_table モジュールの機能を置き換えます。