9.3. ネットワークインターフェイスのテンプレート
オーバークラウドのネットワーク設定には、ネットワークインターフェイスのテンプレートセットが必要です。これらのテンプレートは YAML 形式の標準の heat テンプレートです。director がロール内の各ノードを正しく設定できるように、それぞれのロールには NIC のテンプレートが必要です。
すべての NIC のテンプレートには、標準の Heat テンプレートと同じセクションが含まれています。
heat_template_version- 使用する構文のバージョン
description- テンプレートを説明する文字列
parameters- テンプレートに追加するネットワークパラメーター
resources-
parametersで定義したパラメーターを取得し、それらをネットワークの設定スクリプトに適用します。 outputs- 設定に使用する最終スクリプトをレンダリングします。
/usr/share/openstack-tripleo-heat-templates/network/config のデフォルト NIC テンプレートは、Jinja2 構文のメリットを生かしてテンプレートを容易にレンダリングします。たとえば、single-nic-vlans 設定からの以下のスニペットにより、各ネットワークの VLAN セットがレンダリングされます。
{%- for network in networks if network.enabled|default(true) and network.name in role.networks %}
- type: vlan
vlan_id:
get_param: {{network.name}}NetworkVlanID
addresses:
- ip_netmask:
get_param: {{network.name}}IpSubnet
{%- if network.name in role.default_route_networks %}
デフォルトのコンピュートノードでは、Storage、Internal API、および Tenant ネットワークのネットワーク情報だけがレンダリングされます。
- type: vlan
vlan_id:
get_param: StorageNetworkVlanID
device: bridge_name
addresses:
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
vlan_id:
get_param: InternalApiNetworkVlanID
device: bridge_name
addresses:
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
vlan_id:
get_param: TenantNetworkVlanID
device: bridge_name
addresses:
- ip_netmask:
get_param: TenantIpSubnet
デフォルトの Jinja2 ベースのテンプレートを標準の YAML バージョンにレンダリングする方法は、11章カスタムネットワークインターフェイステンプレートで説明します。この YAML バージョンを、カスタマイズのベースとして使用することができます。