スタックの管理と作成

スタックの管理と作成

Orchestration サービスは、複数から構成されたクラウドアプリケーションを統合するために使用できるサービスです。このサービスは、CloudFormation 互換の Query API 経由の Amazon Web Services (AWS) CloudFormation テンプレート形式、REST API 経由のネイティブ OpenStack Heat Orchestration Template (HOT) 形式の使用をサポートします。

これらの柔軟なテンプレート言語により、アプリケーション開発者は、インフラストラクチャ、サービス、アプリケーションの配備を記述し、自動化できます。テンプレートは、インスタンス、Floating IP アドレス、ボリューム、セキュリティーグループ、ユーザーなどの、ほとんどの OpenStack リソースを作成できます。リソースが作成されると、スタックとして参照されます。

テンプレート言語は、Heat developer ドキュメントTemplate Guide にあります。

サンプルテンプレートファイルからのスタックの作成

  • 以下のコマンドを実行して、サンプルテンプレートファイル からスタックまたはテンプレートを作成します。

    $ openstack stack create --template server_console.yaml \
      --parameter "image=cirros" MYSTACK
    

    指定する --parameters の値は、テンプレートで定義したパラメーターに依存します。ウェブサイトがテンプレートファイルを公開している場合、--template パラメーターで URL を指定することもできます。

    このコマンドは以下の出力を返します。

    +---------------------+----------------------------------------------------------------+
    | Field               | Value                                                          |
    +---------------------+----------------------------------------------------------------+
    | id                  | 70b9feca-8f99-418e-b2f1-cc38d61b3ffb                           |
    | stack_name          | MYSTACK                                                        |
    | description         | The heat template is used to demo the 'console_urls' attribute |
    |                     | of OS::Nova::Server.                                           |
    |                     |                                                                |
    | creation_time       | 2016-06-08T09:54:15                                            |
    | updated_time        | None                                                           |
    | stack_status        | CREATE_IN_PROGRESS                                             |
    | stack_status_reason |                                                                |
    +---------------------+----------------------------------------------------------------+
    
  • openstack stack create コマンドで --dry-run オプションを使うことで、スタックを作成せずにテンプレートファイルを検証できます。

    検証に失敗した場合、応答がエラーメッセージを返します。

スタック情報の取得

特定のスタックの状態と履歴を調査するために、いろいろなコマンドを実行できます。

  • どのスタックが現在のユーザーから参照できるかを確認するために、以下のコマンドを実行します。

    $ openstack stack list
    +--------------------------------------+------------+-----------------+---------------------+--------------+
    | ID                                   | Stack Name | Stack Status    | Creation Time       | Updated Time |
    +--------------------------------------+------------+-----------------+---------------------+--------------+
    | 70b9feca-8f99-418e-b2f1-cc38d61b3ffb | MYSTACK    | CREATE_COMPLETE | 2016-06-08T09:54:15 | None         |
    +--------------------------------------+------------+-----------------+---------------------+--------------+
    
  • スタックの詳細を表示するために、以下のコマンドを実行します。

    $ openstack stack show MYSTACK
    
  • スタックはリソースの集合から構成されます。リソースとその状態を一覧表示するために、以下のコマンドを実行します。

    $ openstack stack resource list MYSTACK
    +---------------+--------------------------------------+------------------+-----------------+---------------------+
    | resource_name | physical_resource_id                 | resource_type    | resource_status | updated_time        |
    +---------------+--------------------------------------+------------------+-----------------+---------------------+
    | server        | 1b3a7c13-42be-4999-a2a1-8fbefd00062b | OS::Nova::Server | CREATE_COMPLETE | 2016-06-08T09:54:15 |
    +---------------+--------------------------------------+------------------+-----------------+---------------------+
    
  • スタックにある特定のリソースの詳細を表示するために、以下のコマンドを実行します。

    $ openstack stack resource show MYSTACK server
    
  • いくつかのリソースはリソースのライフサイクルを通して変更できるメタデータと関連づけられています。以下のコマンドを実行して、メタデータを表示します。

    $ openstack stack resource metadata MYSTACK server
    
  • 一連のイベントはスタックのライフサイクルを通して生成されます。ライフサイクルイベントを表示するために、以下のコマンドを実行します。

    $ openstack stack event list MYSTACK
    2016-06-08 09:54:15 [MYSTACK]: CREATE_IN_PROGRESS  Stack CREATE started
    2016-06-08 09:54:15 [server]: CREATE_IN_PROGRESS  state changed
    2016-06-08 09:54:41 [server]: CREATE_COMPLETE  state changed
    2016-06-08 09:54:41 [MYSTACK]: CREATE_COMPLETE  Stack CREATE completed successfully
    
  • 特定のイベントの詳細を表示するために、以下のコマンドを実行します。

    $ openstack stack event show MYSTACK server EVENT
    

スタックの更新

修正したテンプレートファイルから既存のスタックを更新する場合、以下のようなコマンドを実行します。

$ openstack stack update --template server_console.yaml \
  --parameter "image=ubuntu" MYSTACK
+---------------------+----------------------------------------------------------------+
| Field               | Value                                                          |
+---------------------+----------------------------------------------------------------+
| id                  | 267a459a-a8cd-4d3e-b5a1-8c08e945764f                           |
| stack_name          | mystack                                                        |
| description         | The heat template is used to demo the 'console_urls' attribute |
|                     | of OS::Nova::Server.                                           |
|                     |                                                                |
| creation_time       | 2016-06-08T09:54:15                                            |
| updated_time        | 2016-06-08T10:41:18                                            |
| stack_status        | UPDATE_IN_PROGRESS                                             |
| stack_status_reason | Stack UPDATE started                                           |
+---------------------+----------------------------------------------------------------+

いくつかのリソースはすぐに更新され、他のものは新しいリソースで置き換えられます。

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.