設定テンプレートの設定部分は、通常のデバイス設定と非常によく似たテキストドキュメントです。設定テンプレートを作成する際は、テンプレートで有効にする必要がある機能と設定を使用してすでに設定されているサンプルデバイスから取得した設定のバックアップから始めることを推奨します。設定テンプレートは、デバイス固有のパラメータ(ホスト名など)がプレースホルダに置き換えられる点で、デバイス設定とは異なります。
新しいデバイスレコードを作成すると、設定テンプレートの各プレースホルダに正しい値を指定できるフォームが表示されます。これらの値は、デバイスに送信される実際の設定を生成するために、設定テンプレートとマージされます。
(注)
|
プレースホルダ値は、設定がデバイスに送信されるときに設定テンプレートとマージされます。つまり、デバイスがマネージャに接続する前にシステム変数が変更された場合、最終的なデバイス設定はプレビューに表示されるものと異なる場合があります。
|
設定は、Mustache のテンプレート(https://mustache.github.io/)として作成されます。Mustache を使用すると、次のような、Mustache ドキュメントでタグと呼ばれるさまざまなプレースホルダを使用できます。
-
単純な変数。プレースホルダは、デバイスレコードで指定された値に置き換えられます。単純な変数の形式は {{name}} です。
-
セクション。プレースホルダで設定のブロック(必要な場合は他のプレースホルダも含む)を囲みます。セクションの内容は、最終的な設定から除外するか、1 回だけ含めるか、あるいは複数回繰り返すことができます。
このタイプのプレースホルダの動作は、テンプレート内のメタデータと、デバイスレコードを作成するときにユーザーが指定する値によって定義されます。
セクションの形式は {{#name}}…{{/name}} です。ここで、最初のタグでブロックの先頭を示し、2 番目のタグで末尾を示します。
-
コメントは設定テンプレートをドキュメント化するために使用されることがあります。コメントの形式は {{! This is a comment}} です。
次に、単純なテンプレートの例を示します。
!
hostname {{hostname}}
!
{{! Insert a list of VLANs}}
{{#vlans}}
interface vlan {{vlan-id}}
name {{vlan-name}}
!
{{/vlans}}
この例では、いくつかの異なるプレースホルダが使用されています。
-
{{hostname}} は単純な変数です。これは、デバイスレコード内でホスト名に設定されている値に置き換えられます。
-
ホスト名設定の直後にコメントがあります。このコメントは、デバイスに送信される設定には組み込まれません。
-
{{#vlans}}...{{/vlans}} は、個々の VLAN のリストを保持するためにこの例で使用されているセクションです。デバイスレコードで定義されている各 VLAN について、このコンテナの内容のコピーがデバイス設定で作成されます。
-
{{vlan-id}} と {{vlan-name}} はどちらも単純な変数であり、{{#vlans}} リスト内に含まれています。デバイスレコードが作成されると、 {{vlan id}} と {{vlan name}} に複数の値を指定できます。これらの値は、これらの VLAN をそれぞれに作成するために必要な設定の生成に使用されます。
Mustache 構文の詳細については、https://mustache.github.io/mustache.5.html の Mustache man ページを参照してください。
テンプレートメタデータ
各設定テンプレートには、デバイスレコードの作成時に各プレースホルダをユーザに提示する方法を記述したメタデータが含まれています。このメタデータは、テンプレートエディタを使用してテンプレートを作成するときに生成されます。
設定テンプレートを作成または編集する際には、左側に設定自体が、右側に各プレースホルダのメタデータを設定できるフォームが表示されたテンプレートエディタが表示されます。
設定内の各プレースホルダは、次のコントロールとともに右側に表示されます。
-
[Required] チェックボックス。このコントロールは、ユーザがこのプレースホルダの値を指定する必要があるかどうかを決定します。
-
[Type] ドロップダウンリスト。このドロップダウンリストでプレースホルダのタイプを選択して、そのプレースホルダのユーザに対する表示方法を制御します。
-
[Title]。GUI 上でユーザによりわかりやすいパラメータの名前を指定するために使用されます。プレースホルダにタイトルが指定されていない場合は、プレースホルダ自体が表示されます。
-
[Edit] アイコン。一部のタイプには、プレゼンテーションを制御するためのより多くの設定があります。たとえば、文字列のプレースホルダを IP アドレスや URL としてさらに絞り込むことができます。その場合に、入力したテキストの形式が正しくないと、入力フォームにエラーが表示されます。さらに、一部のタイプでは、ユーザ入力ではなく、システム情報に基づいて設定することもできます。詳細については、以下の「システムと動的変数」を参照してください。
-
[Move up/down] コントロール。これらの矢印を使用すると、ユーザにプレースホルダを表示する順序を変更できます。プレースホルダは、設定に表示される順序ではなく、ユーザが最も理解しやすいという条件に基づいてグループ化することができます。
また、テンプレートエディタにはプレビュー機能があり、デバイスレコードを作成および編集するときに、プレースホルダの形式がユーザにどのように表示されるかを示す例として使用できます。
プレースホルダのタイプ
次のプレースホルダのタイプを使用できます。
-
[String]:このタイプのプレースホルダは、単純なテキスト入力ボックスとして GUI に表示されます。
-
[Integer]:整数はテキスト入力ボックスとして表示され、表示される数値を増減するためのコントロールが備わっています。このフィールドに入力できるのは数字のみです。
-
[boolean]:ブールプレースホルダが GUI にチェックボックスとして表示されます。このチェックボックスをオンにすると、プレースホルダでは文字列値が「true」に設定されます。このチェックボックスをオフした場合は、値は「false」になります。また、セクションをブールとして指定することもできます。この場合、そのセクション内に含まれている設定はそのセクションのチェックボックスがオンになっている場合にのみ含めることができます。
-
[Container]:コンテナタイプは、フォーム内で他のプレースホルダをグループ化するために使用できます。
-
[List]:リストは、生成された構成ファイルで複数回繰り返される可能性のある設定のコンテナまたはセクションです。リスト内のプレースホルダにフォーム要素が生成されると、リスト内の要素を追加または削除するためのコントロールが追加されます。
上記の単純なタイプに加えて、[Edit] アイコンをクリックすると文字列変数をさらに絞り込むことができます。利用可能なオプションは下記の通りです。
-
プレースホルダにデフォルト値を指定する。
-
文字列プレースホルダの最小長または最大長を設定する。
-
選択可能な事前に定義された選択肢のリストを指定する([Enum] オプションを使用)。
-
文字列の形式をホスト名、URI、IPv4 アドレス、または IPv6 アドレスのいずれかに制限する。大量のコンテンツを入力する可能性が高い場合は、文字列をテキストエリアとして指定することもできます。
システム変数と動的変数
プレースホルダはユーザー入力から値を取得するだけでなく、システム内で定義されたパラメータから値を取得することもできます。システム変数は、マネージャの IP アドレスなど、マネージャ自体に定義されているパラメータです。
システム変数から値を取得するようにプレースホルダを設定することで、マネージャはユーザの介入なしにその値を設定に挿入します。一部の複雑な展開では、システム変数が正しく機能するようにするためユーザ入力が必要になる場合があります。詳細については、プラットフォーム設定の管理を参照してください。
動的変数はシステム変数に似ていますが、ログインしているユーザーやデバイスが属するデバイスグループなどの情報に基づいて動的に生成される値です。システム変数と動的変数は、デバイスとシステム間でのテンプレートの移植性を高めるために使用されます。