Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

例: コミット・スクリプト・マクロを使用したカスタム構成構文の作成

Junos OS設定には、カスタム設定構文を持つステートメントを含 apply-macro めることができます。それ自体では、 apply-macro ステートメントはデバイスに運用上の影響を与えるわけではありません。コミットスクリプトマクロは、カスタム設定構文を処理し、標準的なJunos OS設定ステートメントに展開します。その後、永続的または一時的な変更として追加されます。この例では、コミット スクリプトのマクロを使用してステートメントを検査 apply-macro し、Junos OS 設定ステートメントを生成する方法を示します。

要件

この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。

  • Junos OS を実行するデバイス。

  • Python スクリプトを使用する場合、Junos OS リリース 16.1R3 以降のリリース。

概要とコミット スクリプト

表 1 は、カスタム構文を含むマクロと、それに対応する標準的な Junos OS CLI(コマンドライン インターフェイス)構文への拡張を示しています。

表 1:マクロと Junos OS の CLI 拡張の例

カスタム マクロ構文

拡張された Junos OS CLI 構文

protocols {
    mpls {
        apply-macro blue-type-lsp {
            10.1.1.1;
            10.2.2.2;
            10.3.3.3;
            10.4.4.4;
            color blue;
            group-value 0;
        }
    }
}
protocols {
    mpls {
        admin-groups {
            blue 0;
        }
        label-switched-path blue-lsp-10.1.1.1 {
            to 10.1.1.1;
            admin-group include-any blue;
        }
        label-switched-path blue-lsp-10.2.2.2 {
            to 10.2.2.2;
            admin-group include-any blue;
        }
        label-switched-path blue-lsp-10.3.3.3 {
            to 10.3.3.3;
            admin-group include-any blue;
        }
        label-switched-path blue-lsp-10.4.4.4 {
            to 10.4.4.4;
            admin-group include-any blue;
        }
    }
}

この例では、Junos OS管理(mgd)プロセスがステートメントを探apply-macroして設定を検査します。apply-macro階層レベルに[edit protocols mpls]パラメータがcolor含まれている各ステートメントに対して、スクリプトはステートメント内apply-macroで提供されるデータを使用して一時的な変更を生成し、マクロをLSPの標準的なJunos OS管理グループに展開します。

この例を機能させるには、 apply-macro 階層レベルに[edit protocols mpls]アドレス、および パラメーターのセットをcolorgroup-value含める必要があります。コミット スクリプトは各アドレスを LSP 設定に変換し、スクリプトは パラメータをcolor管理グループに変換します。

表 1 のマクロを拡張するコミット スクリプトのインストラクションと、スクリプトの説明を 1 行ずつ説明します。

XSLT 構文

1~8 行目(および行 43 と 44 行)は、XSLT コミット スクリプトのすべてで含まれる定型です。簡潔にするために、ここでは行 1~8 を省略します。

9行目は、 というmpls変数に [edit protocols mpls] 階層レベルを割り当てます。

10 行目は、 パラメーターを[edit protocols mpls]含む階層レベルのすべてのapply-macroステートメントをcolor選択します。表 1 のサンプル構成には、1 つのapply-macroステートメントのみが含まれています。したがって、この<xsl:for-each>プログラミング命令は 1 回だけ有効になります。

11 行目は、この場合blueは、 というcolor変数に パラメーターのcolor値を割り当てます。

12 行目は、このケース0では、 というgroup-value変数に パラメーターのgroup-value値を割り当てます。

13行目から15行目では、 階層レベルで一時的な変更が生成されます [edit protocols mpls]

16~23行目は、 ステートメントを admin-groups コンフィギュレーションに追加し、変数の color 値をグループ名に、変数の値を group-value グループ値に割り当てます。

その結果、設定ステートメントは次のようになります。

24 行目は、割り当てられた値がないすべてのパラメーターの名前を選択します。この場合は 4 つの IP アドレスです。この <xsl:for-each> プログラミング手順では、マクロを通して再帰を使用し、各 IP アドレスを順番に選択します。 color および group-value の各パラメータには、それぞれ(blue および 0、)値が割り当てられているため、この行は割り当てません。

25行目は、設定に label-switched-path ステートメントを追加します。

26行目から28行目は、変数の値、テキスト --lsp、および現在行24で選択されている現在のcolorIPアドレス(" .で表される)を連結する名前を割り当てますlabel-switched-path

29行目は、 to ステートメントを設定に追加し、その値を現在ライン24で選択されているIPアドレスに設定します。

30~34行目は、 admin-group include-any ステートメントを設定に追加し、その値を 変数の値に color 設定します。

結果として得られる設定ステートメント(1つのパスの場合)は次のとおりです。

35~42行目は終了タグです。

SLAX 構文

同等の SLAX スクリプトは次のとおりです。

Python 構文

次のPython構文では、同一の設定変更が行われます。

この例の詳細については、 例: LSP の管理グループの設定を参照してください

構成

手順

手順

スクリプトをダウンロード、有効化、テストするには、以下の手順にしたがっています。

  1. スクリプトをテキスト ファイルにコピーし、 lsp-admin.xsllsp-admin.slax、または必要に応じて lsp-admin.py ファイルに名前を付け、デバイス上の /var/db/scripts/commit ディレクトリにコピーします。

    メモ:

    符号なしPythonスクリプトは、junos OS super-user ログインクラスのルートまたはユーザーのいずれかが所有する必要があり、ファイルの書き込み権限を持つことができるのはファイル所有者だけです。

  2. スクリプトが Python で記述されている場合は、符号なし Python スクリプトの実行を有効にします。

    メモ:

    Python 3を language python3 使用してPythonスクリプトを実行するように ステートメントを設定するか、 ステートメントで language python Python 2.7を使用してPythonスクリプトを実行するように設定します。詳細については、 言語を参照してください。

  3. 以下のテスト構成スタンザを選択し、Ctrl+cを押してクリップボードにコピーします。SLAX または Python バージョンのスクリプトを使用している場合は、 階層レベルでファイル名を [edit system scripts commit file] 更新します。

  4. 設定モードで、 コマンドを load merge terminal 発行して、スタンザをデバイス設定にマージします。

    1. プロンプトで、マウスと貼り付けアイコンを使用して、クリップボードの内容を貼り付けます。

    2. Enter キーを押します。

    3. Ctrl+dを押します。

  5. 設定をコミットします。

検証

スクリプト実行の検証

目的

スクリプトが想定どおりに動作していることを確認します。

アクション

スクリプトによって作成された設定ステートメントを表示するには、 コマンドを show protocols mpls | display commit-scripts 発行します。