Create and manage stacks The template languages are described in the Template Guide in the Heat developer documentation.
Create a stack from an example template file To create a stack, or template, from an example template file, run the following command: $ heat stack-create mystack --template-file=/PATH_TO_HEAT_TEMPLATES/WordPress_Single_Instance.template --parameters="InstanceType=m1.large;DBUsername=USERNAME;DBPassword=PASSWORD;KeyName=HEAT_KEY;LinuxDistribution=F17" The --parameters values that you specify depend on the parameters that are defined in the template. If a website hosts the template file, you can specify the URL with the --template-url parameter instead of the --template-file parameter. The command returns the following output: +--------------------------------------+---------------+--------------------+----------------------+ | id | stack_name | stack_status | creation_time | +--------------------------------------+---------------+--------------------+----------------------+ | 4c712026-dcd5-4664-90b8-0915494c1332 | mystack | CREATE_IN_PROGRESS | 2013-04-03T23:22:08Z | +--------------------------------------+---------------+--------------------+----------------------+ You can also use the stack-create command to validate a template file without creating a stack from it. To do so, run the following command: $ heat stack-create mystack --template-file=/PATH_TO_HEAT_TEMPLATES/WordPress_Single_Instance.template If validation fails, the response returns an error message.
Get information about stacks To explore the state and history of a particular stack, you can run a number of commands. To see which stacks are visible to the current user, run the following command: $ heat stack-list +--------------------------------------+---------------+-----------------+----------------------+ | id | stack_name | stack_status | creation_time | +--------------------------------------+---------------+-----------------+----------------------+ | 4c712026-dcd5-4664-90b8-0915494c1332 | mystack | CREATE_COMPLETE | 2013-04-03T23:22:08Z | | 7edc7480-bda5-4e1c-9d5d-f567d3b6a050 | my-otherstack | CREATE_FAILED | 2013-04-03T23:28:20Z | +--------------------------------------+---------------+-----------------+----------------------+ To show the details of a stack, run the following command: $ heat stack-show mystack A stack consists of a collection of resources. To list the resources and their status, run the following command: $ heat resource-list mystack +---------------------+--------------------+-----------------+----------------------+ | logical_resource_id | resource_type | resource_status | updated_time | +---------------------+--------------------+-----------------+----------------------+ | WikiDatabase | AWS::EC2::Instance | CREATE_COMPLETE | 2013-04-03T23:25:56Z | +---------------------+--------------------+-----------------+----------------------+ To show the details for the specified resource in a stack, run the following command: $ heat resource-show mystack WikiDatabase Some resources have associated metadata which can change throughout the life-cycle of a resource: $ heat resource-metadata mystack WikiDatabase A series of events is generated during the life-cycle of a stack. To display life-cycle events, run: $ heat event-list mystack +---------------------+----+------------------------+-----------------+----------------------+ | logical_resource_id | id | resource_status_reason | resource_status | event_time | +---------------------+----+------------------------+-----------------+----------------------+ | WikiDatabase | 1 | state changed | IN_PROGRESS | 2013-04-03T23:22:09Z | | WikiDatabase | 2 | state changed | CREATE_COMPLETE | 2013-04-03T23:25:56Z | +---------------------+----+------------------------+-----------------+----------------------+ To show the details for a particular event, run the following command: $ heat event-show WikiDatabase 1
Update a stack To update an existing stack from a modified template file, run a command like the following command: $ heat stack-update mystack --template-file=/path/to/heat/templates/WordPress_Single_Instance_v2.template --parameters="InstanceType=m1.large;DBUsername=wp;DBPassword=verybadpassword;KeyName=heat_key;LinuxDistribution=F17" +--------------------------------------+---------------+-----------------+----------------------+ | id | stack_name | stack_status | creation_time | +--------------------------------------+---------------+-----------------+----------------------+ | 4c712026-dcd5-4664-90b8-0915494c1332 | mystack | UPDATE_COMPLETE | 2013-04-03T23:22:08Z | | 7edc7480-bda5-4e1c-9d5d-f567d3b6a050 | my-otherstack | CREATE_FAILED | 2013-04-03T23:28:20Z | +--------------------------------------+---------------+-----------------+----------------------+ Some resources are updated in-place, while others are replaced with new resources.