Junos PyEZを理解する
概要 Junos PyEZ Pythonライブラリを使用して、Junosデバイスをリモートで管理するPythonスクリプトを開発します。
Junos PyEZ の概要
Junos PyEZは、Junosデバイスの管理と自動化を可能にするPython用マイクロフレームワークです。Junos PyEZは、自動化タスク用に構築された環境で、ユーザーがJunos OS CLI上で持つであろう機能を提供するように設計されています。Junos PyEZは、Junos OSやJunos XML APIに関する広範な知識を必要としません。
Junos PyEZを使用すると、Pythonの親しみやすさを使用してJunosデバイスを管理できます。ただし、Junos PyEZを使用するのに経験豊富なプログラマーである必要はありません。非プログラマーはPythonインタラクティブモードで単純なコマンドをすばやく実行でき、経験豊富なプログラマーは、タスクを実行するために、より複雑で堅牢で再利用可能なプログラムを作成することを選択できます。
Junos PyEZでは、シリアルコンソール接続、Telnet、またはSSH経由のNETCONFセッションを使用して、デバイスに直接接続することができます。さらに、Junos PyEZは、デバイスの CONSOLE
ポートに接続されているコンソールサーバーへのtelnetまたはSSH接続を介したデバイスへの接続もサポートしています。Junos PyEZを使用して、デバイスに直接接続している場合はシリアルコンソール接続を使用するか、デバイスに直接接続されているコンソールサーバーを介してtelnetまたはSSHを使用して、リモートアクセス用にまだ設定されていない新しいデバイスまたはゼロ化されたデバイスを最初に設定できます。
Junos PyEZは、Junosデバイス上で一般的な運用タスクを実行するためのデバイス、ソフトウェア、ファイルシステムユーティリティを提供します。Junos PyEZを使用すると、以下のことが可能になります。
デバイスからファクトまたは運用情報を取得する
Junos XML APIから利用可能なリモートプロシージャコール(RPC)を実行します
Junos OSソフトウェアをインストールまたはアップグレードする
デバイスを再起動またはシャットダウンします
ファイルのコピーやチェックサムの計算などの一般的な管理タスクを実行します
Junos PyEZでは、Junosデバイスの設定を管理することもできます。Junos PyEZ 構成管理ユーティリティを使用すると、以下のことが可能になります。
構成データの取得
設定の比較
設定変更のアップロードとコミット
構成のロールバック
レスキュー構成を管理する
Junos PyEZは、ASCIIテキスト、Junos XMLエレメント、Junos OS set
コマンド、JavaScript Object Notation(JSON)などの設定データの標準フォーマットをサポートしています。Jinja2テンプレートとテンプレートファイルを使用して、柔軟性とカスタマイズを追加することもできます。さらに、テーブルとビューを使用して、デバイスをプログラムで構成するために使用できる構造化リソースを定義できます。
Junos PyEZのテーブルとビューにより、Junosデバイスを設定し、デバイスから特定の運用情報や設定データを抽出することができます。テーブルとビューは、キーと値のペアのマッピングを含む単純な YAML ファイルを使用して定義するため、それらを使用するために複雑なコーディングは必要ありません。テーブルとビューを使用して、JunosコマンドまたはRPCのデバイス設定または出力を取得し、カスタマイズされた情報のサブセットを抽出できます。これは、 や show interfaces
コマンドなど、広範なコマンド出力show route
に埋め込まれているいくつかの特定のフィールドから情報を取得する必要がある場合に便利です。さらに、テーブルとビューを使用して、構造化された構成リソースを定義できます。Junos PyEZは、リソースの設定クラスを動的に作成し、プログラムによってデバイス上のリソースを設定することを可能にします。
Junos PyEZのメリット
Python プログラマーもプログラマーでなくても Junos デバイスを簡単に管理および自動化できる抽象化レイヤーを提供します。
オペレーターが一般的なタスクを自動化できるため、デバイスの手動設定と管理が削減され、運用効率が向上します。
ターゲットリソースの構造的な構成変更を可能にすることで、エラーとリスクを最小限に抑えます。
自動化スクリプトでのJunos PyEZの使用
Junos OSおよびJunos OS Evolvedでは、サポートされているデバイスのソフトウェアイメージに、Python拡張パッケージとJunos PyEZライブラリが含まれています。これらの拡張機能により、Junos PyEZを使用してRPCを実行し、デバイス上で運用および構成タスクを実行するオンボックスPythonスクリプトを作成できます。Junos PyEZは、コミット、イベント、運用、SNMPスクリプトでサポートされています。Juniper Extension Toolkit(JET)スクリプトおよびYANGアクションおよび変換スクリプト。
表1 は、特定のJunos OSリリースを実行しているサポート対象デバイスで使用できるJunos PyEZのバージョンをまとめたものです。例えば、Junos OSリリース17.4R1以降、オンボックスのPythonスクリプトでJunos PyEZリリース2.1.4以前のリリースの機能を活用できるようになりました。
Junos OSリリース |
Junos PyEZバージョン |
---|---|
16.1R3 から 17.3 |
1.3.1 |
17.4R1 から 19.3 |
2.1.4 |
19.4R1 以降 |
2.2.0 |
オンボックス Python 自動化スクリプトの作成の詳細については、 Junos OS 自動化スクリプト ユーザー ガイドの Junos OS を実行するデバイス向けの Python 自動化スクリプトを理解するを参照してください。
Junos PyEZリソース
ジュニパーネットワークスは、 表2に示す多数のJunos PyEZリソースを提供しています。
リソース |
説明 |
Url |
---|---|---|
API リファレンス |
Junos PyEZモジュールの詳細なドキュメント。 |
|
Day One:Junos PyEZ クックブックとスクリプトリポジトリ |
Junos PyEZ ネットワーク自動化クックブックには、セットアップガイド、スタートアップサンドボックス、自動化スクリプトの完全なショーケースが掲載されており、GitHub から入手できます。 |
https://www.juniper.net/documentation/en_US/day-one-books/DO_PyEZ_Cookbook.pdf https://github.com/Juniper/junosautomation/tree/master/pyez/PyEZ_Cookbook_2017 |
ドキュメント |
Junos PyEZのインストール、およびJunos PyEZを使用したJunosデバイスの運用および設定タスクの実行に関する詳細情報を含む、Junos PyEZのドキュメント。 |
https://www.juniper.net/documentation/product/us/en/junos-pyez |
GitHubリポジトリ |
Junos PyEZプロジェクトの公開リポジトリ。このリポジトリには、すべてのリリースの最新のソースコード、インストール手順、リリースノートの概要が含まれています。 |
|
Googleグループのフォーラム |
Junos PyEZに関する質問に対処し、一般的なサポートを提供するフォーラムです。 |
|
サンプル スクリプト |
Junos PyEZサンプルスクリプトを使用して作業を開始します。 |
|
スタックオーバーフローフォーラム |
Junos PyEZに関する質問に対処し、一般的なサポートを提供するフォーラムです。 |