Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

例:シンプルなインターフェイス設定に基づいた複雑な設定の作成

このコミット スクリプトの例では、マクロを使用して、シンプルなインターフェイス設定を自動的に拡張します。

要件

この例では、Junos OSを実行しているデバイスを使用しています。

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

この例では、コミットスクリプトとマクロを使用して、デフォルトのカプセル化タイプを割り当て、インターフェイスに複数のルーティングプロトコルを設定し、複数の設定グループを適用する一時的な変更を生成することで、シンプルなインターフェイス設定を自動的に拡張します。Junos OS管理(mgd)プロセスは設定を検査し、 階層レベルに含まれるステートメントを[edit interfaces interface-name]apply-macro paramsします。

スクリプトがステートメントを apply-macro params 見つけると、次のアクションが実行されます。

  • 設定グループを interface-details インターフェイスに適用します。

  • 階層レベルの パラメーターの description 値が [edit interfaces interface-name description] 含まれます。

  • 階層レベルの パラメーターの encapsulation 値が [edit interfaces interface-name encapsulation] 含まれます。このパラメータが encapsulation ステートメントに apply-macro params 含まれていない場合、スクリプトはカプセル化を cisco-hdlc デフォルトに設定します。

  • 論理ユニット番号を に0設定し、パラメーターが ステートメントにinet-addressapply-macro params含まれているかどうかをテストします。その場合、スクリプトには 階層レベルの パラメーターのinet-address値が[edit interfaces interface-name unit 0 family inet address]含まれます。

  • 階層レベルのインターフェイス名を [edit protocols rsvp interface] 含みます。

  • 階層レベルに level 1 enable および metric ステートメントを [edit protocols isis interface interface-name] 含みます。

  • 階層レベルに level 2 enable および metric ステートメントを [edit protocols isis interface interface-name] 含みます。

  • または isis-level-1-metric パラメーターが ステートメントにisis-level-1apply-macro params含まれているかどうかをテストします。これらのパラメーターの 1 つまたは両方が含まれている場合、スクリプトには 階層レベルの level 1 ステートメントが[edit protocols isis interface interface-name]含まれます。パラメーターがisis-level-1含まれている場合、スクリプトには、 階層レベルでの パラメーター (enableまたはdisable) [edit protocols isis interface interface-name level 1]isis-level-1値も含まれます。パラメーターがisis-level-1-metric含まれている場合、スクリプトには、 階層レベルの[edit protocols isis interface interface-name level 1 metric]パラメーターのisis-level-1-metric値も含まれます。

  • または isis-level-2-metric パラメーターが ステートメントにisis-level-2apply-macro params含まれているかどうかをテストします。これらのパラメーターの 1 つまたは両方が含まれている場合、スクリプトには 階層レベルの level 2 ステートメントが[edit protocols isis interface interface-name]含まれます。パラメーターがisis-level-2含まれている場合、スクリプトには、 階層レベルでの パラメーター (enableまたはdisable) [edit protocols isis interface interface-name level 2]isis-level-2値も含まれます。パラメーターがisis-level-2-metric含まれている場合、スクリプトには、 階層レベルの[edit protocols isis interface interface-name level 2 metric]パラメーターのisis-level-2-metric値も含まれます。

  • 階層レベルのインターフェイス名を [edit protocols ldp interface] 含みます。

このスクリプトの例は、XSLT と SLAX の両方の構文で示されています。

XSLT 構文

SLAX 構文

トポロジ

構成

手順

手順

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

  1. スクリプトをテキスト ファイルにコピーし、 if-params.xsl または if-params.slax に名前を付け、デバイス上の /var/db/scripts/commit/ ディレクトリにコピーします。

  2. 以下のテスト構成スタンザを選択し、Ctrl+cを押してクリップボードにコピーします。

    スクリプトの SLAX バージョンを使用している場合は、 階層レベルのファイル名を [edit system scripts commit file] if-params.slax に変更します。

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

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

    2. Enter キーを押します。

    3. Ctrl+dを押します。

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

検証

設定の検証

目的

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

アクション

設定モード コマンドを show interfaces | display commit-scripts | display inheritance 発行します。オプションは | display commit-scripts 、一時変更によって生成されるステートメントを含め、コンフィギュレーション内のすべてのステートメントを表示します。オプションは | display inheritance 、継承された設定データと、その設定が継承された送信元グループに関する情報を表示します。また、このオプションは、インターフェイス範囲設定データを拡張形式で示し、設定が拡張された送信元インターフェイス範囲に関する情報も表示します。次の出力が表示されます。

設定モード コマンドを show protocols | display commit-scripts 発行します。次の出力が表示されます。