設定テンプレート(フリーフォームブループリント)
コンフィグテンプレートを使用する前に、Jinja テンプレートデザイナー に慣れておくことをお勧めします。
Apstra製品には、事前に定義されたいくつかの設定テンプレートが含まれています。コンフィグテンプレートでの構文とconfig Jinjaの使用方法を理解するために。以下のセクションをご覧ください。
シンプルな設定テンプレート
Apstraソフトウェアに同梱されている設定テンプレート junos_protocols.jinja
を見てみましょう。
protocols { lldp { port-id-subtype interface-name; port-description-type interface-description; neighbour-port-info-display port-id; interface all; } }
この単純なテンプレートには、変数やその他の条件は含まれていない。これは、他の事前定義された設定テンプレート junos_configuration.jinja
の1つである設定テンプレート内にネストされています。独自の設定テンプレートを作成して、この基本的なテンプレートをネストすることもできます。
変数付き設定テンプレート
では、別の定義済み構成テンプレートを見 junos_system.jinja
てみましょう。
{% if hostname %} system { host-name {{hostname}}; } {% endif %}
このテンプレートには、if-then ステートメントと 変数が含まれています hostname
。設定がレンダリングされると、システムデバイスコンテキストに の hostname
値が含まれる場合、レンダリングされた設定にはその値が含まれます。
設定テンプレートとプロパティセット
プロパティ セットを使用する例として、NTP サーバーがあります。NTP の設定は、時間ソースや地域ごとの層を除き、企業内のすべてのデバイスで一貫している場合があります。たとえば、実際のIPアドレスの代わりに という名前 ntp
の変数を使用して設定テンプレートを構築できます。構成は、プロパティ セット内のプロパティの ntp
値で生成されます。同じ設定テンプレートをすべてのブループリントにインポートしますが、東地域で実行されているブループリントの場合は「EAST」プロパティセットをインポートし、西地域で実行されているブループリントには「WEST」プロパティセットをインポートします。プロパティ セットはグローバルで、ブループリント全体です。
構成テンプレートは次のようになります。
{% if property_sets.get('ntp') %} system { ntp { server {{property_sets['ntp']['ntp_server']}}; } } {% endif %}
以下の例は、IP アドレスを含むプロパティ セット ntp
の構文を示しています。
ntp_server = '1.2.3.4'