6.3.5 テンプレートパラメータの使用方法
(1) テンプレートパラメータの概要
テンプレートに登録するコンフィグレーションコマンドの任意入力のパラメータを,テンプレートパラメータとしてテンプレートに設定できます。テンプレートパラメータは置換できる文字列です。テンプレートにコンフィグレーションコマンドを登録するときにパラメータの一部をテンプレートパラメータとして設定しておくと,apply-templateコマンドでテンプレートを編集中のコンフィグレーションに反映するときに,テンプレートパラメータへ数値や文字列を指定できます。
テンプレートパラメータの書式は,ドル($)と31文字以内の文字列です。例えば,「$PORT」と設定します。
テンプレートパラメータは,コンフィグレーションコマンドの任意入力のパラメータ(<>で囲まれたパラメータ)に対して使用できます。テンプレートで使用するすべてのテンプレートパラメータは,テンプレートの新規作成時に設定してください。また,使用するテンプレートパラメータを変更する場合は,templateコマンドのchange-parameterパラメータを使用してください。
テンプレートに登録するコンフィグレーションコマンドに使用できるのは,templateコマンドで設定したテンプレートパラメータだけです。テンプレート作成時のテンプレートパラメータの使用例を次の図に示します。
(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で設定したテンプレートパラメータを,コマンドのパラメータとして使用できます(1で設定していないテンプレートパラメータは使用できません)。
テンプレートに設定したテンプレートパラメータには,apply-templateコマンド実行時に入力した値が指定されます。テンプレートパラメータの指定例を次の図に示します。
|
この図では,テンプレートで「$PORT」と「$MTU」の順に二つのテンプレートパラメータを使用しています。apply-templateコマンド実行時に1/1,8192の順で入力すると,「$PORT」に1/1,「$MTU」に8192が指定された状態で編集中のコンフィグレーションへ反映されます。
任意入力のパラメータをテンプレートパラメータとして扱うと,次のことができるようになります。
-
一つのテンプレートを繰り返し使用できます。例えば,インタフェースに設定するテンプレートを作成する場合,「<nif no.>/<port no.>」をテンプレートパラメータとして設定すると,任意のイーサネットインタフェースに適用できるテンプレートになります。
-
設定するテンプレートパラメータの形式を「$<parameter>#<index>」にすると,同じコンフィグレーションコマンドを複数の個所に登録できます。
-
複数指定を設定できないパラメータをテンプレートパラメータにすると,外部のスクリプト機能などを使用してテンプレートパラメータに連続した値(例えば,192.0.2.1,192.0.2.2,…)を指定できるようになります。
(2) 同一コンフィグレーションコマンドの登録
テンプレートに同じコンフィグレーションコマンドを登録する場合は,テンプレートパラメータを「$<parameter>#<index>」の形式で指定します。こうすると同じコマンドでも<index>が異なるため,別のコマンドとして登録できます。なお,apply-templateコマンド実行時には「$<parameter>#<index>」の「$<parameter>」部分だけが編集中のコンフィグレーションに反映されます。「$<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)# |
-
「$PORT#1」「$PORT#2」は,apply-templateコマンドでコンフィグレーションに反映するときは入力した値が「$PORT」に指定されるため,同じコマンドです。しかし,テンプレート上は表記が異なるため,複数の個所に登録できます。
このテンプレートを使用した編集中のコンフィグレーションへの反映例を次の図に示します。
(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)# |
この図では,次の順番でコンフィグレーションに反映されます。
-
interface gigabitethernet 1/1
-
shutdown
-
channel-group 10 mode active
-
exit
-
lacp system-priority 100
-
interface port-channel 10
-
channel-group lacp system-priority 50
-
interface gigabitethernet 1/1
-
no shutdown
-
!
(3) テンプレートパラメータの変更
テンプレートで使用できるテンプレートパラメータを追加,変更,および削除する場合,templateコマンドのchange-parameterパラメータを使用します。change-parameterパラメータを使用すると,templateコマンドで設定されたテンプレートパラメータが上書きされます。テンプレートパラメータの変更例を次の図に示します。
(config)# show EtherDEF template EtherDEF $PORT : : : (config)# template EtherDEF change-parameter $PORT $MTU <-1 (config-TPL)# show template EtherDEF $PORT $MTU <-2 : : : (config-TPL)# |
-
templateコマンドのchange-parameterパラメータを使用して,「$PORT $MTU」と変更します。
-
使用できるテンプレートパラメータに「$MTU」が追加されました。