第7章 heat テンプレートの使用

この章のカスタム設定では、heat テンプレートおよび環境ファイルを使用して、オーバークラウドの特定の機能を定義します。この章では、Red Hat OpenStack Platform に関して、heat テンプレートの設定の基本概要について説明します。テンプレートの目的は、heat が作成するリソースのコレクションであるスタックを定義および作成し、リソースを設定することです。リソースとは、コンピュートリソース、ネットワーク設定、セキュリティーグループ、スケーリングルール、カスタムリソースなどの OpenStack のオブジェクトを指します。

heat テンプレートは、3 つの主要なセクションで設定されます。

パラメーター

パラメーターは、heat に渡される設定です。これらのパラメーターを使用して、デフォルト値およびデフォルト以外の値の両方を定義およびカスタマイズします。テンプレートの parameters セクションで、これらのパラメーターを定義します。

リソース

リソースは、スタックの一部として作成および設定する固有のオブジェクトです。OpenStack には、全コンポーネントに対応するコアリソースのセットが含まれています。テンプレートの resources セクションで、リソースを定義します。

アウトプット

スタックの作成後に heat から渡される値です。これらの値には、heat API またはクライアントツールのいずれかを使用してアクセスできます。テンプレートの output セクションで、これらの値を定義します。

heat がテンプレートを処理する際には、テンプレートのスタックとリソーステンプレートの子スタックセットを作成します。このスタック階層は、テンプレートで定義するメインのスタックに由来します。以下のコマンドを使用して、スタックの階層を表示できます。

$ heat stack-list --show-nested

7.1. コア heat テンプレート

Red Hat OpenStack Platform には、オーバークラウド用のコア heat テンプレートコレクションが含まれています。このコレクションは、/usr/share/openstack-tripleo-heat-templates ディレクトリーにあります。

このコレクションには、多数の heat テンプレートおよび環境ファイルが含まれます。このセクションでは、デプロイメントをカスタマイズするのに使用できる主要なファイルおよびディレクトリーについて説明します。

overcloud.j2.yaml

このファイルは、オーバークラウド環境の作成に使用するメインのテンプレートファイルです。このファイルでは Jinja2 構文を使用してテンプレートの特定セクションを繰り返し、カスタムロールを作成します。Jinja2 フォーマットは、オーバークラウドのデプロイメントプロセス中に YAML にレンダリングされます。

overcloud-resource-registry-puppet.j2.yaml

このファイルは、オーバークラウド環境の作成に使用するメインの環境ファイルです。このファイルには、オーバークラウドイメージ上の Puppet モジュールの設定セットが含まれます。director により各ノードにオーバークラウドのイメージが書き込まれると、heat はこの環境ファイルに登録されているリソースを使用して各ノードの Puppet 設定を開始します。このファイルでは Jinja2 構文を使用してテンプレートの特定セクションを繰り返し、カスタムロールを作成します。Jinja2 フォーマットは、オーバークラウドのデプロイメントプロセス中に YAML にレンダリングされます。

roles_data.yaml

このファイルにはオーバークラウド内のロールの定義が含まれ、サービスを各ロールにマッピングします。

network_data.yaml

このファイルには、オーバークラウド内のネットワーク、およびそれらのサブネット、割り当てプール、VIP ステータス等の属性の定義が含まれます。デフォルトの network_data.yaml ファイルにはデフォルトのネットワーク (External、Internal Api、Storage、Storage Management、Tenant、Management) のみが含まれます。カスタムの network_data.yaml ファイルを作成し、-n オプションを使用して openstack overcloud deploy コマンドに追加することができます。

plan-environment.yaml

このファイルには、プラン名、使用するメインのテンプレート、オーバークラウドに適用する環境ファイル等、オーバークラウドプランのメタデータの定義が含まれます。

capabilities-map.yaml

このファイルには、オーバークラウドプランの環境ファイルのマッピングが含まれます。director の Web UI で環境ファイルを記述および有効化するには、このファイルを使用します。environments ディレクトリーにカスタム環境ファイルを含めても、これらのファイルを capabilities-map.yaml ファイルに定義しない場合、これらの環境ファイルは Web UI の Overall Settings ページの Other サブタブに表示されます。

environments

このディレクトリーには、オーバークラウドの作成に使用可能なその他の heat 環境ファイルが含まれます。これらの環境ファイルは、Red Hat OpenStack Platform 環境の追加の機能を有効にします。たとえば、cinder-netapp-config.yaml 環境ファイルを使用して、Block Storage サービス (cinder) の NetApp バックエンドストレージを有効にできます。environments ディレクトリーにカスタム環境ファイルを含めても、これらのファイルを capabilities-map.yaml ファイルに定義しない場合、これらの環境ファイルは Web UI の Overall Settings ページの Other サブタブに表示されます。

network

このディレクトリーには、分離ネットワークおよびポートを作成するのに使用できる heat テンプレートのセットが含まれます。

puppet

このディレクトリーには、puppet テンプレートが含まれます。overcloud-resource-registry-puppet.j2.yaml 環境ファイルは、puppet ディレクトリーのファイルを使用して、各ノードに Puppet の設定が適用されるようにします。

puppet/services

このディレクトリーには、コンポーザブルサービスアーキテクチャー内の全サービス用の heat テンプレートが含まれます。

extraconfig

このディレクトリーには、追加機能を有効にするのに使用できるテンプレートが含まれます。たとえば、extraconfig/pre_deploy/rhel-registration ディレクトリーを使用して、ノードを Red Hat コンテンツ配信ネットワークまたは使用している Red Hat Satellite サーバーに登録することができます。