Junos PyEZのテーブルとビューについて
概要 Junos PyEZのテーブルとビューを使用して、Junosデバイスから運用データや設定データを抽出したり、Junosデバイス上の特定のリソースをプログラムによって設定したりできます。
Junos PyEZのテーブルとビューはシンプルなYAML定義で、これにより以下のことが可能になります。
Junosデバイスから運用情報を抽出する
Junos デバイスから構成データを取得する
Junosデバイスの設定
テーブルとビューは、複雑な操作コマンドの出力または構成データから情報を抽出し、それをPythonデータ構造にマッピングするためのシンプルで効率的な方法を提供します。テーブルとビューは YAML を使用して定義されるため、独自のテーブルとビューを作成するために複雑なコーディングは必要ありません。情報を抽出するには、定義済みまたはカスタムの表を使用して、コマンドの出力または構成データを、項目のコレクションで構成される表にマップします。各 Table 項目は、データのレコードを表し、一意のキーを持ちます。テーブルは、データ内のタグ名またはフィールドをPythonデータ構造の変数名にマッピングするために使用される特定のビューも参照します。
表 1 は、さまざまなタイプのテーブルの概要と、各タイプが最初にサポートされた Junos PyEZ リリースを示しています。Junos PyEZ運用(op)テーブルは、運用コマンドの出力から項目を選択します。Op テーブルでは、RPC を実行して構造化出力 (XML) を解析することも、コマンドを実行して非構造化出力 (CLI 形式のテキスト) を解析することもできます。Junos PyEZ設定テーブルは、特定の設定データベースの指定された階層でステートメントを選択または設定する構造化された設定リソースを定義します。
プロパティを定義する構成テーブルは、 get
構成データのみを取得できます。プロパティを定義する構成テーブルは、 set
対応するビューで定義されている構成ステートメントを取得および変更できます。Junos PyEZフレームワークに構成テーブルを追加すると、Junos PyEZはリソースの構成クラスを動的に作成し、プログラムによってデバイス上のリソースを構成することができます。
テーブルの種類 |
サブセット |
説明 |
Junos PyEZリリース |
---|---|---|---|
操作テーブル |
構造化された出力を持つ RPC |
デバイス上で RPC を実行し、構造化された XML 出力を返す |
1.0 |
非構造化出力のコマンド |
デバイスでCLIコマンドを実行するか、FPCでvtyコマンドを実行し、構造化されていないCLI形式の出力を返します |
2.3 |
|
構成テーブル |
|
構成データの取得 |
1.2 |
|
設定データを取得するか、対応するビューで定義されたステートメントを設定します |
2.0 |
例えば、次のopテーブルでは、Junos OS CLIshow arp no-resolve
のコマンドに対応するオプションno-resolve
を使用してRPCの出力get-arp-table-information
を取得しています。テーブルは、XML 出力から要素を抽出しますarp-table-entry
。対応するビューは、ユーザー定義フィールド名を、Junos XML 出力内のそのデータの位置に対応する XPath 式にマッピングすることにより、各arp-table-entry
項目から 3 つのフィールドを選択します。この場合、 mac-address
、 ip-address
、および interface-name
は のarp-table-entry
子要素です。
--- ArpTable: rpc: get-arp-table-information args: no-resolve: True item: arp-table-entry key: mac-address view: ArpView ArpView: fields: mac_address: mac-address ip_address: ip-address interface_name: interface-name
操作テーブルとビューの作成と使用の詳細については、次のトピックを参照してください。
構成テーブルとビューの作成と使用の詳細については、次のトピックを参照してください。
Junos PyEZアプリケーションでのカスタムテーブルとビューの読み込みやインポート、またはファイルへのデータの保存については、以下のトピックを参照してください。