Creating your first stack

Confirming you can access a Heat endpoint

Before any Heat commands can be run, your cloud credentials need to be sourced:

$ source openrc

You can confirm that Heat is available with this command:

$ openstack stack list

This should return an empty line

Preparing to create a stack

Your cloud will have different flavors and images available for launching instances, you can discover what is available by running:

$ openstack flavor list
$ openstack image list

To allow you to SSH into instances launched by Heat, a keypair will be generated:

$ openstack keypair create heat_key > heat_key.priv
$ chmod 600 heat_key.priv

Launching a stack

Now lets launch a stack, using an example template from the heat-templates repository:

$ openstack stack create -t http://git.openstack.org/cgit/openstack/heat-templates/plain/hot/F20/WordPress_Native.yaml --parameter key_name=heat_key --parameter image_id=my-fedora-image --parameter instance_type=m1.small teststack

Which will respond:

+--------------------------------------+-----------+--------------------+----------------------+
| ID                                   | Name      | Status             | Created              |
+--------------------------------------+-----------+--------------------+----------------------+
| (uuid)                               | teststack | CREATE_IN_PROGRESS | (timestamp)          |
+--------------------------------------+-----------+--------------------+----------------------+

Note

Link on Heat template presented in command above should reference on RAW template. In case if it be a “html” page with template, Heat will return an error.

List stacks

List the stacks in your tenant:

$ openstack stack list

List stack events

List the events related to a particular stack:

$ openstack stack event list teststack

Describe the wordpress stack

Show detailed state of a stack:

$ openstack stack show teststack

Note: After a few seconds, the stack_status should change from IN_PROGRESS to CREATE_COMPLETE.

Verify instance creation

Because the software takes some time to install from the repository, it may be a few minutes before the Wordpress instance is in a running state.

Point a web browser at the location given by the WebsiteURL output as shown by openstack stack output show:

$ WebsiteURL=$(openstack stack output show teststack WebsiteURL -c output_value -f value)
$ curl $WebsiteURL

Delete the instance when done

Note: The list operation will show no running stack.:

$ openstack stack delete teststack
$ openstack stack list

You can explore other heat commands by referring to the Heat chapter of the OpenStack Command-Line Interface Reference then read the Template Guide and start authoring your own templates.