Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos PyEZについて

Junos PyEZ Pythonライブラリを使用して、Junosデバイスをリモート管理するPythonスクリプトを開発します。

Junos PyEZ の概要

Junos PyEZは、Junosデバイスの管理と自動化を可能にするPython用のマイクロフレームワークで、Junosデバイス。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 routeshow interfaces コマンドなど、広範なコマンド出力に組み込まれているいくつかの特定のフィールドから情報を取得する必要がある場合に便利です。さらに、テーブルとビューを使用して、構造化された設定リソースを定義できます。Junos PyEZは、リソースの設定クラスを動的に作成するため、デバイス上でリソースをプログラム的に設定できます。

Junos PyEZのメリット

  • Pythonプログラマーだけでなく、プログラマーでない方も、Junosデバイスを簡単に管理および自動化できる抽象化レイヤーを提供します。

  • オペレーターが一般的なタスクを自動化できるようにすることで運用効率が向上し、デバイスの手動設定や管理が減少します。

  • ターゲットリソースの構造化された設定変更を可能にすることで、エラーとリスクを最小限に抑えます。

自動化スクリプトでの Junos PyEZ の使用

Junos OSとJunos OS Evolvedは、サポート対象デバイスのソフトウェアイメージにPython拡張パッケージとJunos PyEZライブラリを含んでいます。これらの拡張機能により、Junos PyEZを使用してRPCを実行し、デバイス上で運用タスクや設定タスクを実行するオンボックスPythonスクリプトを作成できます。Junos PyEZは、コミット、イベント、op、SNMPスクリプトでサポートされています。ジュニパー Juniper Extension Toolkit(JET)スクリプト。YANGアクションスクリプトと翻訳スクリプトを併用します。

表1 は、特定のJunos OSリリースを実行しているサポートされているデバイスで利用可能なJunos PyEZバージョンをまとめたものです。例えば、Junos OSリリース17.4R1以降、オンボックスPythonスクリプトでJunos PyEZリリース2.1.4以前のリリースの機能を活用できるようになりました。

表1:サポートされているJunosデバイスでのJunos PyEZバージョン

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 自動化 Scriptingユーザーガイド』の「Junos OSを実行しているデバイス用のPython 自動化スクリプトについて」を参照してください。

Junos PyEZのリソース

ジュニパーネットワークスは、 表2に示す多数のJunos PyEZリソースを提供しています。

表2:Junos PyEZのリソース

リソース

説明

URL

APIリファレンス

Junos PyEZモジュールの詳細なドキュメント。

https://junos-pyez.readthedocs.io/en/latest/

Day One:Junos PyEZクックブックとスクリプトリポジトリ

セットアップガイド、スタートアップサンドボックス、GitHubで入手できる自動化スクリプトの完全なショーケースを含む、Junos PyEZネットワーク自動化クックブック。

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プロジェクトのパブリックリポジトリ。このリポジトリには、すべてのリリースの最新のソースコード、インストール手順、リリースノートの概要が含まれています。

https://github.com/Juniper/py-junos-eznc/

Google グループ フォーラム

質問に対応し、Junos PyEZに関する一般的なサポートを提供するフォーラム。

https://groups.google.com/group/junos-python-ez

サンプルスクリプト

Junos PyEZサンプルスクリプトをご紹介します。

https://github.com/Juniper/junosautomation/tree/master/pyez

Stack Overflowフォーラム

質問に対応し、Junos PyEZに関する一般的なサポートを提供するフォーラム。

https://stackoverflow.com/questions/tagged/pyez