Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Op スクリプトでコマンド ライン引数を宣言して使用する

Junos OS op スクリプトは、スクリプトの呼び出し時にコマンドラインの引数を受け取ることができます。ユーザーが CLI で op スクリプトのコンテキストに応じてヘルプを要求する際に、可能な引数のリストを表示できるようにする宣言を設定に含めることができます。スクリプトには、引数を処理するために必要な宣言とコードも含める必要があります。以下のセクションでは、引数とヘルプ・テキストを定義し、op スクリプトで引数を使用する方法について詳しく説明します。

Op スクリプトコマンドライン引数の宣言

CLI でコンテキスト・ヘルプを使用する場合に表示される予想される op スクリプト引数のリストを定義するには、2 つの方法があります。

  • op スクリプトに宣言を含める

  • Junos OS 設定にステートメントを含める

スクリプト生成 引数と 構成生成 引数は、同じ運用上の影響を受けます。以下のセクションでは、さまざまな方法を使用して op スクリプトの引数を定義し、CLI で表示する方法について説明します。

Op スクリプトで引数を定義する方法

Python、SLAX、または XSLT op スクリプトで、op スクリプトに予想されるコマンド ライン引数を直接宣言できます。

Python op スクリプトでコマンド ライン引数を宣言するには、次の手順に沿います。

  1. という名前のグローバル辞書を宣言します arguments
  2. 引数ごとに、引数名と引数のヘルプ・テキストにマップされる名前と値のペアを定義します。

Python 構文

メモ:

CLI で引数を表示するには、Python スクリプトに ステートメントを if __name__ == '__main__': 含める必要があります。

SLAX または XSLT op スクリプトでコマンド ライン引数を宣言するには、次の手順に従います。

  1. という名前のグローバル変数を宣言します arguments
  2. 各引数に対して、要素を定義します <argument>
  3. <argument> 要素内:
    • 引数の名前で <name> エレメントを定義します。
    • 必要に応じて、 <description> その引数のヘルプ テキストを提供する要素を定義します。

XSLT 構文

SLAX 構文

Junos OS 設定で引数を定義する方法

op スクリプトの引数を op スクリプトで直接宣言する代わりに、Junos OS 設定で予期されるコマンドライン引数を宣言できます。

コンフィギュレーションでコマンドライン引数を宣言するには:

  1. 指定されたスクリプトの arguments 階層レベルの [edit system scripts op file filename] ステートメントに移動します。
  2. 引数名を設定します。
  3. オプションで、 引数に description ヘルプテキストを提供するように ステートメントを設定します。

例えば:

コンテキストに依存するヘルプで引数を表示する方法

op スクリプトまたは構成のいずれかで引数を宣言した後、CLI のコンテキスト・ヘルプを使用して、op スクリプトの引数をリストすることができます。オプションの引数記述を含める場合、CLI は引数名を含むヘルプ・テキストを表示します。

op スクリプトまたは構成に引数宣言を含めずに、op スクリプトの非表示の引数を作成することもできます。スクリプトで通常と同じ引数を使用しますが、その op スクリプトのコンテキスト・ヘルプを要求すると、CLI には引数またはヘルプ・テキストは表示されません。

メモ:

Junos OS設定でコマンドライン引数を設定し、opスクリプトで直接引数を宣言する場合、スクリプトで宣言した引数は引き続き使用できますが、 コマンドを発行op filename ?する際の下Possible completionsにCLIには引数がリストされません。これは、管理 (mgd) プロセスが最初に引数の構成を確認してリストに追加されるために発生します。mgd プロセスは、構成に引数が見つからない場合にのみ、引数のスクリプトをチェックします。このため、構成で引数を宣言すると、スクリプトで宣言された引数は CLI で非表示になります。

op スクリプトのヘルプ テキストの設定の詳細については、「 Op スクリプト のヘルプ テキストの設定」を参照してください。

Op スクリプトでのコマンドライン引数の使用

コマンドを使用してローカル op スクリプトを op filename 実行します。コマンドライン引数をスクリプトに渡すためには、スクリプトの実行時に各引数名と値を含めます。

メモ:

スクリプトが認識できない引数を指定した場合、その引数は無視されます。

以下のセクションでは、Python、SLAX、XSLT op スクリプトに渡されるコマンド ライン引数の使用方法について説明します。

Python Op スクリプトで引数を使用する方法

Python op スクリプトは、標準的なコマンドライン解析ライブラリを使用して、コマンドライン引数を処理および使用できます。たとえば、Python argparse ライブラリを使用して、必須およびオプションの引数を簡単に定義し、デフォルト値を指定して、スクリプトの引数を処理できます。

標準的な Python ライブラリを簡単に使用してコマンド ラインの引数を解析できるように、引数を Python op スクリプトに渡す方法を変更しました。Junos OS リリース 21.2R1 およびリリース 21.2R1 Junos OS Evolved以降、デバイスがコマンドライン引数を Python op スクリプトに渡すと、単一のハイフン(-)のプレフィックスが単一のハイフン(-)の引数名になり、2 つのハイフン(-)から複数文字の引数名がプレフィックスになります。以前のリリースでは、デバイスはすべての引数名に単一ハイフン(-)を付けます。op スクリプトで特定のリリースの引数が正しく処理されていることを確認する必要があります。

次の例では、 モジュールを argparse 使用してスクリプトの引数を処理しています。この例ではグローバル arguments 辞書を定義し、辞書キーを使用してパーサーに予想される引数を定義します。2 つのサンプル スクリプトを提供し、指定されたリリースの引数を適切に処理します。

Python 構文(Junos OS リリース 21.2R1 以降)

Python 構文(Junos OS リリース 21.1 以前)

SLAX および XSLT Op スクリプトで引数を使用する方法

SLAX または XSLT op スクリプトでコマンド ライン引数を使用するには、次の操作を行う必要があります。

  1. 各引数にパラメーター宣言を含める
  2. パラメーター名が、スクリプト内の変数宣言または arguments Junos OS 設定の ステートメントでarguments定義した名前と同じであることを確認します。

XSLT 構文

SLAX 構文

op スクリプトは、各スクリプト引数の値を対応するパラメーターに割り当てます。この値は、スクリプト全体で参照できます。

例: XSLT Op スクリプトでの引数の宣言

protocolという名前interfaceの 2 つの引数を宣言します。ge-0/2/0.0インターフェイスとプロトコルを引数のinet値として指定し、スクリプトを実行します。

次の例では、XSLT スクリプトまたは構成のいずれかで引数を宣言する方法を示します。

Op スクリプトでの引数の宣言(スクリプト1)

コンフィギュレーションでの引数の宣言

スクリプトの引数または構成で引数を宣言するだけでなく、スクリプトの引数を参照して値にアクセスするには、スクリプト内の対応するパラメーターも宣言する必要があります。

パラメーターの宣言

スクリプトの実行時に引数の名前と値を指定します。例えば:

スクリプトの実行

例:Python Op スクリプトでの引数の宣言と使用

という名前interfacepの 2 つの引数を Python op スクリプトで宣言します。ge-0/2/0.0インターフェイスとプロトコルを引数のinet値として指定し、スクリプトを実行します。リリースに基づいて、適切な引数処理ステートメントを選択します。このスクリプトでは、Junos OSリリース21.2R1以降と互換性のあるステートメントを使用し、古いリリースの引数を処理するためのステートメントをコメントアウトします。

Op スクリプトでの引数の宣言(script1.py)

または、Python op スクリプトに辞書を arguments 含める代わりに、SLAX や XSLT スクリプトとまったく同じように引数を構成に含めることができます。

CLI のコンテキスト・ヘルプで op スクリプトの引数を表示するには、 コマンドを op filename ? 発行します。

引数の表示

スクリプトの実行時に引数の名前と値を指定します。例えば:

スクリプトの実行

リリース履歴テーブル
リリース
説明
21.2R1および21.2R1-EVO
Junos OS リリース 21.2R1 およびリリース 21.2R1 Junos OS Evolved以降、デバイスがコマンドライン引数を Python op スクリプトに渡すと、単一のハイフン(-)のプレフィックスが単一のハイフン(-)の引数名になり、2 つのハイフン(-)から複数文字の引数名がプレフィックスになります。