コンフィグレーションガイド Vol.1


6.3.5 テンプレートパラメータの使用方法

〈この項の構成〉

(1) テンプレートパラメータの概要

テンプレートに登録するコンフィグレーションコマンドの任意入力のパラメータを,テンプレートパラメータとしてテンプレートに設定できます。テンプレートパラメータは置換できる文字列です。テンプレートにコンフィグレーションコマンドを登録するときにパラメータの一部をテンプレートパラメータとして設定しておくと,apply-templateコマンドでテンプレートを編集中のコンフィグレーションに反映するときに,テンプレートパラメータへ数値や文字列を指定できます。

テンプレートパラメータの書式は,ドル($)と31文字以内の文字列です。例えば,「$PORT」と設定します。

テンプレートパラメータは,コンフィグレーションコマンドの任意入力のパラメータ(<>で囲まれたパラメータ)に対して使用できます。テンプレートで使用するすべてのテンプレートパラメータは,テンプレートの新規作成時に設定してください。また,使用するテンプレートパラメータを変更する場合は,templateコマンドのchange-parameterパラメータを使用してください。

テンプレートに登録するコンフィグレーションコマンドに使用できるのは,templateコマンドで設定したテンプレートパラメータだけです。テンプレート作成時のテンプレートパラメータの使用例を次の図に示します。

図6‒45 テンプレート作成時のテンプレートパラメータの使用例
(config)# template EtherDEF $PORT $MTU                 <-1
(config-TPL)# interface gigabitethernet $PORT          <-2
(config-if-TPL)# shutdown
(config-if-TPL)# mtu $MTU                              <-2
(config-if-TPL)# no shutdown
(config-if-TPL)# exit
(config-TPL)# show 
template EtherDEF $PORT $MTU
  interface gigabitethernet $PORT
    shutdown
    mtu $MTU
    no shutdown
  end-template
!
(config-TPL)#
  1. テンプレートの新規作成時にテンプレートパラメータを設定します。

  2. 1で設定したテンプレートパラメータを,コマンドのパラメータとして使用できます(1で設定していないテンプレートパラメータは使用できません)。

テンプレートに設定したテンプレートパラメータには,apply-templateコマンド実行時に入力した値が指定されます。テンプレートパラメータの指定例を次の図に示します。

図6‒46 テンプレートパラメータの指定例

[図データ]

この図では,テンプレートで「$PORT」と「$MTU」の順に二つのテンプレートパラメータを使用しています。apply-templateコマンド実行時に1/1,8192の順で入力すると,「$PORT」に1/1,「$MTU」に8192が指定された状態で編集中のコンフィグレーションへ反映されます。

任意入力のパラメータをテンプレートパラメータとして扱うと,次のことができるようになります。

(2) 同一コンフィグレーションコマンドの登録

テンプレートに同じコンフィグレーションコマンドを登録する場合は,テンプレートパラメータを「$<parameter>#<index>」の形式で指定します。こうすると同じコマンドでも<index>が異なるため,別のコマンドとして登録できます。なお,apply-templateコマンド実行時には「$<parameter>#<index>」の「$<parameter>」部分だけが編集中のコンフィグレーションに反映されます。「$<parameter>#<index>」を使用したテンプレート例を次の図に示します。

図6‒47 「$<parameter>#<index>」を使用したテンプレート例
(config)# show template
template LacpSet $PORT $LA_ID
  interface range gigabitethernet $PORT#1              <-1
    shutdown
    channel-group $LA_ID mode active
  lacp system-priority 100
  interface port-channel $LA_ID
    channel-group lacp system-priority 50
  interface range gigabitethernet $PORT#2              <-1
    no shutdown
  end-template
!
(config)#
  1. 「$PORT#1」「$PORT#2」は,apply-templateコマンドでコンフィグレーションに反映するときは入力した値が「$PORT」に指定されるため,同じコマンドです。しかし,テンプレート上は表記が異なるため,複数の個所に登録できます。

このテンプレートを使用した編集中のコンフィグレーションへの反映例を次の図に示します。

図6‒48 「$<parameter>#<index>」を使用したテンプレートの反映例
(config)# apply-template LacpSet 1/1 10
(config)# show
    :
    :
    :
lacp system-priority 100
!
interface port-channel 10
  channel-group lacp system-priority 50
! 
interface gigabitethernet 1/1
  channel-group 10 mode active
!
(config)#

この図では,次の順番でコンフィグレーションに反映されます。

  1. interface gigabitethernet 1/1

  2. shutdown

  3. channel-group 10 mode active

  4. exit

  5. lacp system-priority 100

  6. interface port-channel 10

  7. channel-group lacp system-priority 50

  8. interface gigabitethernet 1/1

  9. no shutdown

  10. !

(3) テンプレートパラメータの変更

テンプレートで使用できるテンプレートパラメータを追加,変更,および削除する場合,templateコマンドのchange-parameterパラメータを使用します。change-parameterパラメータを使用すると,templateコマンドで設定されたテンプレートパラメータが上書きされます。テンプレートパラメータの変更例を次の図に示します。

図6‒49 テンプレートパラメータの変更例
(config)# show EtherDEF
template EtherDEF $PORT 
    :
    :
    :
(config)# template EtherDEF change-parameter $PORT $MTU     <-1
(config-TPL)# show
template EtherDEF $PORT $MTU                                <-2
    :
    :
    :
(config-TPL)#
  1. templateコマンドのchange-parameterパラメータを使用して,「$PORT $MTU」と変更します。

  2. 使用できるテンプレートパラメータに「$MTU」が追加されました。