第5章 オーケストレーション
director は、Heat Orchestration Template (HOT) をオーバークラウドデプロイメントプランのテンプレート形式として使用します。HOT 形式のテンプレートは多くの場合に、YAML 形式で表現されます。テンプレートの目的は、Heat が作成するリソースおよびリソースごとの設定であるスタックを定義および作成することです。リソースとは、コンピュートリソース、ネットワーク設定、セキュリティーグループ、スケーリングルール、カスタムリソースなどの OpenStack のオブジェクトを指します。
本章では、独自のテンプレートファイルを作成できるように HOT 構文を理解するための基本を説明します。
5.1. Heat テンプレートの基礎知識 リンクのコピーリンクがクリップボードにコピーされました!
5.1.1. Heat テンプレートの概要 リンクのコピーリンクがクリップボードにコピーされました!
The structure of a Heat template has three main sections:
- パラメーター
-
これらは、Heat に渡される設定(スタックのカスタマイズが可能)およびパラメーターのデフォルト値(値を渡さない場合)です。これらがテンプレートの
parametersセクションで定義されます。 - リソース
-
これらは、スタックの一部として作成/設定する固有のオブジェクトです。OpenStack には全コンポーネントに対応するコアのリソースセットが含まれています。これらがテンプレートの
resourcesセクションで定義されます。 - 出力
-
これらは、スタックの作成後に Heat から渡される値です。これらの値には、Heat API またはクライアントツールを使用してアクセスすることができます。これらがテンプレートの
outputセクションで定義されます。
以下に、基本的な Heat テンプレートの例を示します。
heat_template_version: 2013-05-23
description: > A very basic Heat template.
parameters:
key_name:
type: string
default: lars
description: Name of an existing key pair to use for the instance
flavor:
type: string
description: Instance type for the instance to be created
default: m1.small
image:
type: string
default: cirros
description: ID or name of the image to use for the instance
resources:
my_instance:
type: OS::Nova::Server
properties:
name: My Cirros Instance
image: { get_param: image }
flavor: { get_param: flavor }
key_name: { get_param: key_name }
output:
instance_name:
description: Get the instance's name
value: { get_attr: [ my_instance, name ] }
このテンプレートは、リソース種別 type : OS::Nova::Server を使用して、特定のフレーバー、イメージ、キーで my_instance というインスタンスを作成します。スタックは、My Cirros Instance の instance_name の値を返します。
Heat テンプレートは、利用可能な関数や使用する構文のバージョンを定義する heat_template_version パラメーターも必要とします。詳しい情報は Heat の正式なドキュメント を参照してください。
5.1.2. 環境ファイルの理解 リンクのコピーリンクがクリップボードにコピーされました!
環境ファイルとは、Heat テンプレートをカスタマイズする特別な種類のテンプレートです。このファイルは、3 つの主要な部分で設定されます。
- パラメーター
-
これらは、テンプレートのパラメーターに適用する共通設定です。これらが環境ファイルの
parametersセクションで定義されます。 - パラメーターのデフォルト
-
これらのパラメーターは、テンプレート内のパラメーターのデフォルト値を変更します。これらが環境ファイルの
parameter_defaultsセクションで定義されています。 - リソースレジストリー
-
このセクションでは、カスタムリソース名を定義し、他の Heat テンプレートにリンクします。これは実質的に、コアリソースコレクションに存在しないカスタムのリソースを作成する方法を提供します。この設定は、環境ファイルの
resource_registryセクションで定義されます。
基本的な環境ファイルの例を以下に示します。
resource_registry:
OS::Nova::Server::MyServer: myserver.yaml
parameter_defaults:
NetworkName: my_network
parameters:
MyIP: 192.168.0.1
これにより、OS::Nova::Server::MyServer という新しいリソース種別が 作成されます。myserver.yaml ファイルは、このリソース種別を実装する Heat テンプレートファイルで、このファイルでの設定が元の設定よりも優先されます。