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