Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos デバイスの Python 自動化スクリプトについて

Python スクリプトの概要

SLAX および XSLT の代わりに、ソフトウェア イメージの Python 拡張パッケージをサポートする Junos デバイスで Python スクリプトを作成して実行できます。Python は実用的で機能が豊富な言語で、ライブラリを幅広くサポートしており、カスタム スクリプトを作成できます。 表 1 では、Junos デバイスで使用可能な Python バージョンの概要を示し、特定のタイプのスクリプトに対してそのバージョンのサポートが追加または削除されたリリースをメモしています。

表 1:Junos OS を実行するデバイス上の Python バージョン

Python バージョン

リリース

変更

影響を受けるスクリプトタイプ

Python 2.7.x

Junos OS リリース 16.1R1 以降

サポートを追加しました

コミット、イベント、運用、SNMP スクリプト

Juniper Extension Toolkit(JET)スクリプト

YANG アクションおよび翻訳スクリプト

Junos OS リリース 20.2R1 以降

サポートが削除されました

YANG アクションおよび翻訳スクリプト

Junos OS リリース 21.1R1 以降

サポートが削除されました

コミット、イベント、運用、SNMP スクリプト

Juniper Extension Toolkit(JET)スクリプト

Junos OS Evolved リリース 22.3R1 以降

サポートが削除されました

コミット、イベント、運用、SNMP スクリプト

Juniper Extension Toolkit(JET)スクリプト

YANG アクションおよび翻訳スクリプト

Python 3.x

Junos OS リリース 19.4R1 以降

サポートを追加しました

コミット、イベント、運用、SNMP スクリプト

Junos OS リリース 20.2R1 以降

サポートを追加しました

Juniper Extension Toolkit(JET)スクリプト

YANG アクションおよび翻訳スクリプト

Junos OS Evolved リリース 21.1R1 以降

サポートを追加しました

サポートされているプラットフォームについては、 機能エクスプローラー を参照してください。

コミット、イベント、運用、SNMP スクリプト

Juniper Extension Toolkit(JET)スクリプト

YANG アクションおよび翻訳スクリプト

メモ:

Python 2.7 のサポート終了およびサポート終了日は 2020 年 1 月 1 日でした。Python 2.7 の正式なアップグレード パスは Python 3 です。オンボックス スクリプトの種類に応じて Junos OS を実行するデバイスに Python 3 のサポートが追加されるため、サポートされているスクリプト タイプを Python 2 から Python 3 に移行することをお勧めします。

Python スクリプトは、Python 言語のすべての機能と構成要素を活用できます。この Python 言語は、SLAX と XSLT よりも柔軟性が高く、SLAX と XSLT では実行が困難または不可能な操作を実行できます。SLAX と XSLT は XML データ処理用に設計されていますが、Python はあらゆる形式の処理に適しています。Python は、リスト、辞書、セット、タプルなど、幅広いデータ型のリストをサポートしており、ほとんどの SLAX や XSLT 変数とは異なり、多くの Python 変数は変更可能です。SLAX および XSLT スクリプトではループ制御は制限されますが、Python スクリプトは、 などのbreakcontinueステートメントを使用して、ループの動作を正確に制御できます。Python はファイル操作も幅広くサポートしており、コマンド ラインで標準の Python デバッガを呼び出して、Python op スクリプトをデバッグできます。

さらに、Junos OS は Python スクリプトで以下をサポートしています。

  • Junos PyEZ ライブラリ:RPC の実行と、Junos OS を実行するデバイスでの運用および設定タスクの実行を簡素化します。

  • lxml ライブラリ:XPath の処理を簡素化します。

  • Jinja2ライブラリ:定義済みのテンプレートからコンテンツを生成できるテンプレートエンジンで、Junos OS設定データの生成に役立ちます。

  • IPv6 — Junos OS リリース 19.3R1 以降、Python 自動化スクリプトで IPv6 を使用して Junos OS とアップグレードされた FreeBSD を実行するデバイス。詳細については、 Python 自動化スクリプトでの IPv6 サポートを参照してください。

  • 非デフォルトルーティングインスタンス-Junos OSリリース19.3R1以降、サポートされているデバイス上のPythonスクリプトは、 set_routing_instance() 拡張機能を使用して、非デフォルトのルーティングインスタンスを介してリモートデバイスに接続できます。

  • その他の Python モジュール — Junos OS を実行するデバイス上の Python スクリプトで使用可能なモジュールについては、「 Junos OS を 実行するデバイス上の Python モジュールの概要」を参照してください。

Junos OS を実行しているデバイスで不正な Python コードが実行されないようにするには、符号なし Python スクリプトがデバイス上でスクリプトを実行する前に特定の要件を満たす必要があります。Junos OS を実行するデバイスで Python 自動化スクリプトを実行するための要件の詳細については、「 Junos デバイスで Python 自動化スクリプトを実行するための要件」を参照してください。

Python 2.7またはPython 3のいずれかを使用して符号なしPythonスクリプトを実行するには、 階層レベルで、 または language python3 ステートメントをそれぞれ設定language pythonする[edit system scripts]必要があります。ステートメントをlanguage python3設定した場合、デバイスはこのPythonバージョンをサポートするスクリプトを実行するためにPython 3を使用し、表1に記載されているように、Python 2.7を使用して、特定のJunos OSリリースでPython 3をサポートしていないスクリプトを実行します。

JET スクリプトの場合、スクリプトがサポートする Python バージョンに対応する ステートメントのバージョンを設定する必要があります。たとえば、Python 2.7 のみをサポートする JET スクリプトに ステートメントを設定 language python3 すると、スクリプトの実行時にランタイム エラーが発生します。

コミット、イベント、Op、SNMPスクリプトのPythonスクリプト入力

Python 自動化スクリプトをサポートする Junos OS を実行するデバイスには、コミット、イベント、op、SNMP スクリプトにインポートできる次のモジュールが含まれています。

表 2:junos モジュール オブジェクト

Python オブジェクト

スクリプト タイプ

説明

XSLT/SLAX 同等品

Junos_Context

辞書

コミット

イベント

Op

デバイスホスト名、スクリプトタイプ、スクリプトを実行するユーザーなど、スクリプト実行環境に関するデバイス固有の情報。

commit-script-input/junos-context

event-script-input/junos-context

op-script-input/junos-context

Junos_Configuration

lxml.etree _Element

コミット

継承後の候補構成(Junos XML 形式)。

commit-script-input/configuration

Junos_Trigger_Event

lxml.etree _Element

イベント

対応するイベント ポリシーをトリガーしたイベントの詳細。

event-script-input/trigger-event

Junos_Received_Events

lxml.etree _Element

イベント

トリガー・イベントの前に発生した相関イベントの詳細。

event-script-input/received-events

Junos_Remote_Execution_Details

一連のリモート デバイスを生成するジェネレータ機能。

イベント

階層レベルでイベントスクリプトに設定されたローカルまたはリモートホストの [edit event-options event-script file filename remote-execution] 接続詳細。

event-script-input/remote-execution-details

さまざまなスクリプト入力と、自動化スクリプトにインポートして使用する方法の詳細については、以下を参照してください。

Python スクリプト リソース

表 3 は、Junos OS を実行するデバイス上で Python スクリプトを作成および実行するのに役立つリソースを示しています。 表 4 は、さまざまなタイプのスクリプトごとにリソースを提供します。

表 3:一般的なリソース

リソース

ドキュメント

Python スクリプトの実行要件

Junos デバイスで Python 自動化スクリプトを実行するための要件

Junos OS を実行するデバイス上の Python モジュール

Junos OS を実行するデバイス上の Python モジュールの概要

Python スクリプトでの IPv6 サポート

Python 自動化スクリプトでの IPv6 サポート

Junos PyEZのドキュメント

Junos PyEZ

Python プログラミング言語のマニュアル

https://www.python.org/

表 4:リソース(スクリプト タイプ別)

スクリプト タイプ

ドキュメント

Junos OS コミット、イベント、op、SNMP スクリプト

Junos OS自動化スクリプティングユーザーガイド

Juniper Extension Toolkit(JET)スクリプト

Juniper Extension Toolkitのドキュメント

YANG アクションおよび翻訳スクリプト

NETCONF XML管理プロトコル開発者ガイド