Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos PyEZ を使用して Junos デバイスを設定する

概要 Junos PyEZ Config ユーティリティまたは Junos PyEZ テーブルとビューを使用して、Junos デバイスを設定できます。

Junos PyEZを使用すると、Junosデバイス上で構造化および非構造化の設定変更を行うことができます。構成の変更に使用するユーザー アカウントには、各デバイスの構成の関連部分を変更する権限が必要です。ユーザーを定義しない場合、ユーザーのデフォルト $USERは になります。

以下のセクションでは、構造化と非構造化の設定変更を比較し、ユーティリティを使用して非構造化設定変更を行ったり、テーブルとビューを使用して構造化設定変更を行ったりする場合の Config Junos PyEZ設定プロセスについて詳しく説明します。

構造化および非構造化設定の変更について

構造化されていない設定変更とは、ASCIIテキスト、Junos XML要素、Junos OS set コマンド、または JavaScript Object Notation(JSON)としてフォーマットされた静的またはテンプレート化された設定データの読み込みで構成されており、この jnpr.junos.utils.config.Config ユーティリティを使用して実行されます。対照的に、構造化された設定変更では、Junos PyEZ設定テーブルとビューを使用して、Junos OSユーザーアカウントなど、設定する特定のリソースを定義します。テーブルをJunos PyEZフレームワークに追加すると、Junos PyEZはリソースの設定クラスを動的に作成し、デバイス上でそのリソースをプログラムによって設定できるようになります。

このユーティリティを使用して Config Junosデバイスで非構造化設定変更を行う場合、設定のどの部分でも変更できますが、設定データとして受け入れられている形式のいずれかを使用し、その形式に適した構文を使用する必要があります。サポートされている構成形式に精通していて、構成の任意の部分を変更するオプションを必要とするユーザーは、構成の変更にこの方法を好む場合があります。この Config ユーティリティでは、以前にコミットした設定にロールバックしたり、既存のレスキュー設定を読み込むこともできます。

一方、構造化された設定の変更では、テーブルとビューを作成して特定のリソースを定義し、デバイス上で定義されたリソースのみを設定できるようにする必要があります。構造化リソースを定義する際、ユーザーがリソースに設定できる設定ステートメントを指定したり、タイプや制約のチェックを定義して、ユーザーがJunos PyEZアプリケーションのデータに受け入れ可能な値を提供できるようにすることもできます。テーブルとビューを作成すると、簡単に共有して再利用できます。Table ユーザーは、デバイス上のリソースをプログラムで構成でき、サポートされている構成形式や構文に関する知識は必要ありません。

表1 は、Junos PyEZが構成変更を行うためにサポートしている2つの方法をまとめたものです。

表 1: Junos PyEZ の構造化および非構造化設定の変更

構成変更タイプ

ユーティリティ

スコープ

構成データ形式

詳細な情報

構造

テーブルとビュー

テーブルとビューで定義された設定ステートメントに限定されます

ターゲットとする構成変更を行うために使用

構成形式や構文の知識は必要ありません

非構造化

jnpr.junos.utils.config.Config クラス

構成の任意の部分

  • テキスト

  • Json

  • Junos OS set コマンド

  • Junos XML

サポート:

  • 文字列、XMLオブジェクト、ローカルまたはリモートファイル、またはJinja2テンプレートからの設定データの読み込み

  • レスキュー設定の読み込み

  • 構成を以前のバージョンにロールバックする

このトピックでは、一般的な構成プロセスと、両方の構成方法に共通する操作と要素について説明します。ユーティリティまたはテーブルとビューを使用して Config 構成を更新する方法の詳細については、その構成方法に固有のドキュメントを参照してください。

この Config ユーティリティを使用して非構造化構成を変更する方法の詳細については、以下のトピックを参照してください。

構成テーブルとビューを使用して構造化された構成変更を行う方法の詳細については、以下のトピックを参照してください。

一般的な設定プロセスの理解

Junos PyEZを使用すると、Junosデバイスの設定を変更することができます。デバイスに正常に接続したら、希望する設定方法に応じて または Config Table オブジェクトを作成し、それを Device オブジェクトに関連付けます。例えば:

設定オブジェクト

テーブルオブジェクト

デフォルトでは、Junos PyEZは候補のグローバル構成( 共有構成データベースとも呼ばれます)を更新します。設定変更の基本的なプロセスは、設定データベースをロックし、設定変更を読み込み、設定をコミットしてアクティブにしてから、設定データベースのロックを解除することです。Junos PyEZ Config ユーティリティを使用して、共有設定データベースの非構造化設定変更を行う場合、ここで概説する適切なインスタンスメソッドを呼び出すことで、以下のアクションを実行できます。

  1. を使用して lock() 構成をロックします。

  2. 次のいずれかの操作を実行して、構成を変更します。

    • 新しい完全なコンフィギュレーションを読み込むとき、またはコンフィギュレーションの特定の部分を変更するときに呼び出す load()

    • コール rollback() を以前にコミットした設定に戻す(設定のロールバックを参照)。

    • レスキュー設定を読み込むの説明に従って、レスキュー設定を読み込むための呼び出し rescue()

  3. 「設定をコミットする」および「Junos PyEZ を使用して設定をコミットする」の説明に従って、を使用して設定を commit() コミットします。

  4. 次を使用して構成のロックを解除します。 unlock()

テーブルとビューを使用してデバイスの構造化された構成変更を行う場合は、 、 load()、 、および unlock() メソッドを個別に呼び出すlock()か、これらのすべてのメソッドを自動的に呼び出すメソッドを呼び出すset()commit()かを選択できます。

メモ:

このメソッドは load() 、Table オブジェクトと Config オブジェクトに対して同じ機能を実行しますが、メソッドを呼び出すオブジェクトの種類に応じて異なるパラメーターを指定します。

構成モードを指定する方法

デフォルトでは、Junos PyEZは候補のグローバル設定を更新します。また、構成データベースを変更するときに使用する別の構成モードを指定することもできます。デフォルト以外のモードを指定するには、コンテキストマネージャー (with ... as 構文) を使用して または Table オブジェクトを作成しConfig、引数をmode目的のモードに設定する必要があります。サポートされているモードにはprivateexclusivedynamicbatchephemeral、および が含まれます。

デフォルト以外のモードを指定すると、コンテキストマネージャはデータベースのオープンとロック、およびクローズとロック解除を処理します。これにより、意図せずにデータベースをロック状態のままにすることがなくなります。このような場合は、 および commit() メソッドを呼び出すload()だけでデバイスを構成できます。

次の例では、 モードを使用して configure private 設定を変更します。

メモ:

コンテキストマネージャは、 、 、 、batchまたは ephemeral モードでの設定データベースのprivateオープンdynamicとロックを処理します。 exclusiveしたがって、これらのモードのいずれかで or set() メソッドを呼び出すlock()と、LockError例外が発生します。

Junos PyEZを使用すると、このデータベースをサポートするデバイス上の エフェメラル設定データベースを 更新できます。エフェメラルデータベースは、Junosデバイスで設定更新を実行するための高速なプログラムインターフェイスを提供する代替設定データベースです。

メモ:

一時的な設定データベースは高度な機能であり、誤って使用するとデバイスの動作に深刻な悪影響を与える可能性があります。詳細については、「 エフェメラル構成データベースについて」を参照してください。

エフェメラル構成データベースの既定のインスタンスを開いて構成するには、引数を含めます mode='ephemeral' 。例えば:

エフェメラル構成データベースのユーザー定義インスタンスを開いて構成するには、引数を記述し mode='ephemeral' 、引数を ephemeral_instance インスタンスの名前に設定します。

ロード操作を指定する方法

Junos PyEZでは、Junos OS CLIでサポートされているものと同じロード操作の多くを使用して、設定変更をロードすることができます。目的のロード操作を指定するには、テーブルとビューを使用して構造化構成変更を行う場合の set() メソッド、または構造化構成変更または非構造化構成変更のメソッドに load() 適切なパラメーターを含めるか省略します。 表 2 は、各タイプのロード操作に必要なパラメーター設定を要約したものです。

メモ:

load override and load update 操作には完全な構成が必要なため、overwrite=True構成内の特定のステートメントのみを変更する tables を使用して構成を変更する場合は、 および update=True 引数を使用しないでください。

表 2: load() メソッドと set() メソッドでロード操作タイプを指定するためのパラメータ

負荷動作

引数

説明

最初にサポートされた Junos PyEZ リリース

load merge

merge=True

読み込んだコンフィギュレーションを既存のコンフィギュレーションとマージします。

1.0

load override

overwrite=True

コンフィギュレーション全体をロードしたコンフィギュレーションに置き換えます。

1.0

load patch

patch=True

パッチ ファイルから構成データを読み込みます。

2.4.0

load replace (デフォルト)

読み込んだコンフィギュレーションを既存のコンフィギュレーションにマージしますが、既存のコンフィギュレーションのステートメントを、読み込んだコンフィギュレーションの というタグを指定した replace: ステートメントに置き換えます。既存のコンフィギュレーションに ステートメントがない場合は、ロードされたコンフィギュレーションに ステートメントが追加されます。

1.0

load update

update=True

完全なコンフィギュレーションを読み込み、既存のコンフィギュレーションと比較します。読み込まれたコンフィギュレーションで異なる各構成要素は、既存のコンフィギュレーションの対応する要素を置き換えます。コミット操作中は、変更された構成要素の影響を受けるシステム プロセスのみが新しい設定を解析します。

2.1.0

Config オブジェクトまたは Table オブジェクトをデバイス インスタンスのプロパティとして作成する方法

class bind() メソッドを使用するとDevice、さまざまなインスタンスとメソッドをDeviceインスタンスにアタッチできます。Junos PyEZアプリケーションでは、 または TableオブジェクトをインスタンスにDeviceバインドConfigするオプションがあります。メソッドの機能は変更されませんが、メソッドの実行は若干異なります。例えば:

スタンドアロン変数として:

バインドされたプロパティとして: