Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

設定テンプレートでの Jinja のサポート

コンフィグテンプレートでの Jinja の使用

前述したように、構成テンプレートは Jinja テンプレート構文の使用をサポートしています。Jinja2 テンプレート言語を使用して、デバイス コンテキスト機能とプロパティ セット機能を操作できます。これにより、高度な自動テンプレート評価とエンドデバイス設定のレンダリングが可能になります。Jinja構文でデバイスコンテキストプロパティを使用すると、基本的に、Apstraの信頼できる単一の情報源(SSOT)データベースに基づいて、設定テンプレート用に動的に構築された値を持つことができます。

これは、パラメータ化された値を持つ多数のスイッチやインターフェイスに設定テンプレートを適用するユースケースや、ブループリントからの動的データ(スイッチ自身のホスト名など)を設定テンプレートに含めたい場合に便利です。

Apstraデバイスコンテキストでの値へのアクセス

Apstraが各デバイスに対して保存しているすべてのキー値を表示するには、いくつかの方法があります。

内部ノードに移動することで、[Staged] または [Active] トポロジ ビューで [Device Context] を選択できます。デバイスビューには、デフォルトで次のように表示されます。

また、設定テンプレートの作成中に デバイスコンテキスト をインタラクティブに表示することもできます。

最後に、API 経由でデバイス コンテキストにアクセスすることもできます。

ブループリント UI を使用して、API 呼び出しに必要なデータにアクセスします。デバイスを選択し、URL のブループリント ID とノード ID をメモします。

構成テンプレートでの Jinja の使用例

ホスト名

次の例は、Junos 設定テンプレートの静的セクションを示しています。1つのJinjaテンプレートは、デバイスのホスト名変数を参照し、ホスト名はApstraグラフデータベースに保存されている値に置き換えられます。この値は、テンプレートがレンダリングされるときに渡されます。このJinjaと変数の使用は、Apstraから動的データを作成する際に役立ちます。

デバイスコンテキストからのBGP ASN

前の例と同様に、次の例は、デバイス プロパティのキー値を呼び出す方法を示しています。設定を動的に構築するために、キー値はApstraグラフデータベースに保存されます。ここでは、キー bgpService.asnbgpService.router_id がApstraによって保存された値に置き換えられ、テンプレートのレンダリング時に渡されます。

結果としてレンダリングされた構成:

ループで使用する変数の定義

場合によっては、構成テンプレートで直接変数を定義して保存すると便利な場合があります。Apstraは、設定をレンダリングする際にこれらの変数を参照します。次の例は、定義された変数を使用してアクセスリストを作成する方法を示しています。

レンダリングされた設定の結果

プロパティ セットと Jinja ループ

また、Jinja を使用して、要素のリストを含むプロパティ セットのデータ モデルをループして評価することもできます。以下の簡易ネットワーク管理プロトコル(SNMP)の設定例を考えてみましょう。プロパティ セット内の値を Jinja for ループと組み合わせて、複数の動的な構成行で最終構成をレンダリングできることに注意してください。

プロパティセット:

レンダリングされた設定の結果

Building and Testing Your Config Templates with Jinja

Freeformには、複数ペインの設定テンプレートエディターも用意されています。この革新的な機能は、統合開発環境 (IDE) と同様に機能し、構成テンプレートをリアルタイムで構築および編集します。

マルチペイン構成テンプレートエディター

テンプレート テキスト ペイン

名前が示すように、マルチペイン構成テンプレートエディターには、いくつかの編集ウィンドウがあります。メイン ウィンドウは [Template Text] 領域で、Config テンプレートを作成します。このテンプレートテクスチャ領域は、構文の強調表示、オートコンプリート、およびエラー通知をサポートします。

プレビューペイン

次のウィンドウは [Preview] ペインで、含まれている Jinja 構文を処理し、最終的な Config Template コンパイルをレンダリングします。これにより、最終的に処理された設定をリアルタイムで表示できます。完全な設定を表示するか、増分設定を表示するかを選択できます。

デバイスのコンテキスト ペイン

最後に、 デバイスのコンテキスト ペインには、選択したデバイスでApstraが使用できるすべてのグラフプロパティが表示されます。これにより、動的な変数置換のために設定テンプレートで使用できる値をすばやく確認して検索できます。

手記:

プレビューペインに Jinja テンプレートからレンダリングされた設定を正常に表示するには、Jinja テンプレートを読み込み、テスト対象のデバイスにアタッチする必要があります。