Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Ansible を Junos PyEZ テーブルと共に使用して、Junos デバイスから運用情報を取得

モジュールの概要

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

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

コンテンツセット

モジュール名

juniper.device 徴収

table

Juniper.junos 役割

juniper_junos_table

手記:

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

手記:

モジュールは、構成テーブルとビューでは機能しません。

Junos PyEZテーブルについて

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

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

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

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

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

モジュールjuniper_junos_tableにはtable、使用するテーブルを指定する次の引数を含めることができます。

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

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

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

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

モジュールの応答には、Table によって返される項目の一覧を含むキーが含まれます resource 。各リスト項目は、View で定義されたフィールド名と、対応する各フィールドのデータから抽出された値を含むディクショナリです。

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

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

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

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

RPC 引数の指定

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

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

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

次のAnsibleプレイブックは、Junosデバイス上のインターフェイスに関する情報を抽出するために使用しますEthPortTable。引数には kwargs が含まれ、 interface_name: "ge-1/0/0"のデフォルトinterface_nameEthPortTable上書きし、ge-1/0/0 インターフェイスのみの要求されたフィールドを取得するようにモジュールに指示します。

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

変更履歴テーブル

機能のサポートは、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がプラットフォームでサポートされているかどうかを判断します。

解放
形容
2.0.0
リリース 2.0.0 以降 Juniper.junosjuniper_junos_table モジュールはモジュールの機能を置き換えます junos_get_table