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

heat テンプレートと環境ファイルを使用して、オーバークラウドの特定の側面を定義します。

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

パラメーター

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

リソース

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

出力

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

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

$ heat stack-list --show-nested

7.1. コア heat テンプレート

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

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

overcloud.j2.yaml

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

overcloud-resource-registry-puppet.j2.yaml

この環境ファイルは、オーバークラウド環境を作成します。これには、オーバークラウドイメージ上の Puppet モジュールの一連の設定が含まれています。director により各ノードにオーバークラウドのイメージが書き込まれると、heat はこの環境ファイルに登録されているリソースを使用して各ノードの Puppet 設定を開始します。このファイルでは Jinja2 構文を使用してテンプレートの特定セクションを繰り返し、カスタムロールを作成します。オーバークラウドのデプロイメント中に、director は 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 環境ファイルが含まれます。これらの環境ファイルにより、RHOSP 環境の追加機能が有効になります。たとえば、cinder-netapp-config.yaml 環境ファイルを使用して、Block Storage サービス (cinder) のサードパーティーバックエンドストレージオプションを有効にすることができます。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 サーバーに登録することができます。