マクロ変数

マクロ変数はテンプレートコンフィグに記述する変数です。 変数名をコンフィグ中に記述すると、コンフィグの反映時に変数値(文字列)に置き換えられます。

マクロ変数の書式は次の通りです。

${【変数名】} または $変数名

例:
${macro}
$macro

"{" と "}" は省略可能ですが、省略する場合はマクロ変数に続く文字と区切るために空白が必要です。このため、連続する文字列の一部をマクロに置き換える用途には適しません。

このドキュメントでは "{" と "}" を省略せずに記載しています。

ローカル変数

ローカル変数は運用管理担当者が定義します。

ローカル変数「hostname」を定義した場合のテンプレートでの書式は次の通りです。

${local.hostname}

または

${hostname}

テンプレートに関連付けられ、当該テンプレートに所属するサービスアダプタのみ値を設定できます。

また、値の設定が省略された場合のデフォルト値を定義できます。

テンプレートからコンフィグを生成するときに、サービスアダプタごとに設定された変数値に置き換えられます。

テンプレートから所属を解除すると、変数値はクリアされます。

変数名1 ~ 40 文字、半角英数字およびアンダースコアが入力可能(先頭は英字のみ、大文字と小文字を区別します)
変数値0 ~ 3000 文字(改行を含む複数行を設定できます)
設定数テンプレート毎に2000個まで

定型的なコンフィグの内、ホスト名や拠点ごとに異なるISPアカウント情報など、サービスアダプタ個別に設定するパラメータに使用します。

グローバル変数

グローバル変数は運用管理担当者が定義します。

グローバル変数「ntp_address1」を定義した場合のテンプレートでの書式は次の通りです。

${global.ntp_address1}

テンプレートからコンフィグを生成するときに、全てのテンプレート、すべてのサービスアダプタで共通の変数値に置き換えられます。

変数名1 ~ 40 文字、半角英数字およびアンダースコアが入力可能(先頭は英字のみ、大文字と小文字を区別します
変数値0 ~ 300 文字(改行を含む複数行を設定できます)
設定数2000個まで

NTPサーバやDNSサーバのアドレスといった、複数のサービスアダプタが共通で使用するパラメータはテンプレートに直接記述することもできますが、これらをグローバル変数として定義するとテンプレートを他のサービス契約に転用可能になるなど汎用性が向上します。

システム変数

システム変数は予め定義されており、変数ごとに特定の値に置き換えられます。

ループカウンタ
${loopCount}

ループカウンタはマクロコマンド「#foreach」内でのみ使用できます。 初期値「0」から開始し、ループ毎にインクリメントされます。

サービスコード
${system.sa_code}

サービスアダプタのサービスコードに置き換えられます。拠点ごとのユニークな識別子として使用できます。

マクロコマンド「foreach」内で繰り返し処理対象のサービスコードに使用する場合は次のように記述します。

${【ループ変数名】.system.sa_code}
フロートリンク用ホストデータベース

フロートリンク機能を使用する際は、通常はフロートリンクのネームサーバの名前解決のために、リゾルバ機能がDNSによって名前解決できるように構成します。

しかし、名前解決可能なDNSを設定要件等によって使用できない場合、このシステム変数を使用すると必要なホスト名とIPアドレスの対応をリゾルバのホストデータベース機能に設定できます。

  • ホスト名とIPアドレスの対応は将来変更される可能性があります。変更された場合はコンフィグ反映操作が必要になります
  • 機種によって設定するべき変数名が異なります。適応しない変数名を使用するとコンフィグ検証エラーの原因になります
  • 変数から展開される内容と重複する設定をテンプレートに含めないでください。コンフィグ検証エラーの原因になります
適応サービスアダプタ:SEIL/X4, SEIL/x86 Ayame, SA-W2, SA-W2L
${system.floatlink_resolver_config_a}
コンフィグに展開される内容
resolver.host-database.99999990.hostname: floatlink.sacm.jp
resolver.host-database.99999990.address: 2001:240:bb88::2db
resolver.host-database.99999991.hostname: floatlink.sacm.jp
resolver.host-database.99999991.address: 202.221.50.90
適応サービスアダプタ:SEIL BPV4, SEIL/X1, SEIL/X2, SEIL/B1, SEIL/x86 Fuji
${system.floatlink_resolver_config_b}
コンフィグに展開される内容
floatlink name-service add https://floatlink-seil.sacm.jp/address
resolver host-database add floatlink-seil.sacm.jp address 2001:240:bb88::2dc,202.221.50.91
システム自動コンフィグ
${system.mpc_base_config}

管理上必要とされるコンフィグが自動的に挿入されます。

テンプレートを保存したとき、テンプレートに記述されていない場合は自動的に追加されます。

コメント記法などにより無力化すると運用上問題が発生する可能性があります。

「#」文字
${system.sharp}

「#」文字が出力されます。# は「コメント」マクロコマンドとして扱われるため、テンプレートコンフィグの文字列内に # を記述する場合にはマクロ変数で記述する必要があります。

自動ローカル変数

自動ローカル変数の設定値を参照する場合は、${auto.<変数名>} の形式で参照します。{ } を付けない省略形では記述できません。<変数名>にはシステムで定義された以下の2種類の変数名を指定できます。自動ローカル変数は#foreachによるループ内でも参照できます。

変数名機能
${auto.lan1ipv6address}サービスアダプタのLAN1に設定されたIPv6アドレスです。複数設定があ る場合はプライマリ(先頭)のアドレスになります。値が参照可能となるの はサービスアダプタが接続している場合です。
${auto.lan1ipv6prefix}サービスアダプタのLAN1に設定されたプレフィックス値です。複数設定 がある場合はプライマリ(先頭)のアドレスになります。

自動ローカル変数はSMFsxからの移行時に該当機能を利用していた場合のみ、MPCサービスで利用可能になります。

利用がない状態で移行した場合、もしくはMPCサービスを新規にご契約の場合、自動ローカル変数を参照しても値は設定されず、自動反映も行われません。

  • 自動ローカル変数を参照する場合、必ずテンプレート側で#if文を用いて変数に値が設定されて いる事をチェックしてください。値が設定されていない場合には展開時にエラーになる場合があ りますのでご注意ください。
  • 自動ローカル変数はサービスアダプタ側の設定値の変化に対し、自動的に変更を反映する仕組みに対応しています。自動ローカル変数をテンプレートで参照しているサービスアダプタは、値が変更された場合にシステム側から自動的に設定変更が行われます。詳しくは「コンフィグの管理」をご覧ください。


コメント

テンプレートコンフィグ中に任意のコメントを記述できます。

「##」から行末までの文字列はコメントとして扱い、コンフィグの反映時に無視されます。

特定の行のコンフィグを一時的に無効にする場合にも利用できます。

## this line is comment
this is config ## this is comment

コメントは半角の英数字及び記号を使用できます。

複数行にわたるコメントは、「#*」と「*#」の間に記述します。

#* this line is comment
   and this line is comment too *#
特殊文字のエスケープ処理

テンプレートコンフィグ内では、定義済のテンプレート変数名やマクロコマンド名と一致する文字列をそのまま出力するには、文字列の先頭に「\」を付記します。

但し、コメント開始文字の「#」はエスケープ処理を適用できません。 テンプレートコンフィグ中に「##」や「#*」を含む文字列をそのまま出力するには、システム変数「${system.sharp}」を使用してください。

this is config and parameter is \${var}
this is config and parameter is \#if