Jump to: navigation, search

Difference between revisions of "Heat/GettingStartedUsingMasterOnUbuntu"

(Fix keystone setup script path)
 
(20 intermediate revisions by 8 users not shown)
Line 1: Line 1:
__NOTOC__
 
== Install Ubuntu on host ==
 
  
Download and install [Ubuntu 12.04](http://releases.ubuntu.com/precise/ubuntu-12.04-server-amd64.iso)
 
selecting the following packages:
 
* SSH packages
 
* Virtual Machine Host
 
  
Note: tasksel can be used to select applications on an existing desktop installation.
+
'''NOTE (7/24/2014): this document is no longer maintained, Ubuntu users should refer to the documentation here:'''
 +
http://docs.openstack.org/developer/heat/getting_started/on_ubuntu.html
 +
<hr>
  
Increase storage pool if necessary: (use uuid to generate)
+
This guide will help to get the current git master of Heat to run on Ubuntu. It makes the following assumptions:
http://wiki.libvirt.org/page/Tips#Adding_an_alternative_storage_pool
+
* The host is running Ubuntu 12.04 or 12.10
 +
* There is a working [[OpenStack]] installation based on Essex or Folsom, or that one will be installed via the tools/openstack_ubuntu script described below
 +
* Heat will be installed on the controller host of the existing [[OpenStack]] installation (or if doing a single-host evaluation, on the same host as all other [[OpenStack]] services)
  
Note: We recommend using a storage volume with format of raw, but Qed may be usable in the future. 
+
=== Get Heat ===
  
== Configure and upgrade Ubuntu ==
+
Clone the heat repository from GitHub:
  
=== If you don't want to enter your password for each sudo step, configure sudo ===
+
<source lang="bash">
 +
git clone git://github.com/openstack/heat.git
 +
</source>
  
 +
=== Install [[OpenStack]] ===
  
<pre><nowiki>
+
Note, this section may be skipped if you already have a working [[OpenStack]] installation
sudo visudo
 
enter password
 
</nowiki></pre>
 
  
 +
==== Installing [[OpenStack]] on Ubuntu 12.04/12.10 ====
  
by replacing the line
+
A script called openstack_ubuntu in the tools directory of the Heat repository will install and start [[OpenStack]] for you on Ubuntu:
 +
''Note currently only tested on 12.04, if it works for you on 12.10, please let us know''
  
 +
<source lang="bash">
 +
cd heat
 +
./tools/openstack_ubuntu install -r ${MYSQL_ROOT_PASSWORD}
 +
</source>
 +
 +
If you use this method, you will need to manually create a guest network.  How this is done depends on your environment.  An example network create operation:
 +
 +
<source lang="bash">
 +
sudo nova-manage network create --label=demonet --fixed_range_v4=${SUBNET} --bridge=demonetbr0 --bridge_interface=eth0"
 +
</source>
 +
 +
Where ''${SUBNET}'' is of the form ''10.0.0.0/24''. The network range here, must *not* be one used on your existing physical network. It should be a range dedicated for the network that [[OpenStack]] will configure. So if ''10.0.0.0/24'' clashes with your local network, pick another subnet.
  
<pre><nowiki>
+
The example above assumes you want to bridge with physical device ''eth0''
%sudo ALL=(ALL:ALL) ALL
 
</nowiki></pre>
 
  
 +
Currently, the bridge is not created immediately upon running this command, but is actually added when Nova first requires it.
  
with
+
=== Load keystone authentication into your environment and verify everything is ok. ===
  
 +
<source lang="bash">
 +
. ~/.openstack/keystonerc
 +
keystone user-list
 +
glance index
 +
nova list
 +
</source>
  
<pre><nowiki>
+
Note ''~/.openstack/keystonerc'' is created by tools/openstack_ubuntu, replace this step with your own credentials file for an admin user if [[OpenStack]] was installed by some other method
%sudo ALL=(ALL:ALL) NOPASSWD:ALL
 
</nowiki></pre>
 
  
Finish installing by running the commands
+
== Install prerequisites ==
  
<pre><nowiki>
+
<source lang="bash">
sudo apt-get upgrade 
+
sudo apt-get install python-pip gcc python2.7-dev
sudo apt-get dist-upgrade
 
 
sudo apt-get install git
 
sudo apt-get install git
 
sudo apt-get install build-essential devscripts debhelper python-all gdebi-core
 
sudo apt-get install build-essential devscripts debhelper python-all gdebi-core
 
sudo apt-get install python-setuptools python-prettytable python-lxml
 
sudo apt-get install python-setuptools python-prettytable python-lxml
 
sudo apt-get install libguestfs*
 
sudo apt-get install libguestfs*
sudo apt-get autoremove
+
</source>
sudo shutdown -r now 
 
</nowiki></pre>
 
  
 +
== Install python-heatclient (optional) ==
 +
* NOTE* If running 12.04 LTS with the packaged Openstack Essex release, do not install python-heatclient, as it will break your [[OpenStack]] installation, because it explicitly requires a version of the prettytable library (>0.6) which causes problems with the Essex cli tools (keystone/nova/glance) in 12.04 : https://bugs.launchpad.net/keystone/+bug/995976  The packaged python-prettytable (0.5 version) works OK
  
Note: the build-essential sudo line is used to build an Oz .deb package.
+
<source lang="bash">
 
+
sudo pip install extras python-heatclient
== Install [[DevStack]] ==
+
</source>
 
 
=== Download Devstack ===
 
 
 
<pre><nowiki>
 
git clone git://github.com/openstack-dev/devstack.git 
 
</nowiki></pre>
 
 
 
 
 
=== Configure the default catalog ===
 
 
 
Add the following to devstack/files/default_catalog.templates:
 
 
 
 
 
<pre><nowiki>
 
catalog.RegionOne.heat.publicURL = http://localhost:8000/v1 
 
catalog.RegionOne.heat.adminURL = http://localhost:8000/v1 
 
catalog.RegionOne.heat.internalURL = http://localhost:8000/v1 
 
catalog.RegionOne.heat.name = Heat Service 
 
</nowiki></pre>
 
 
 
Note: This step is mandatory because devstack uses a non-persistent file backend for the keystone catalog.  Other keystone parameters are stored in a [[MySql]] database.
 
 
 
=== If running desktop edition configure resolve.conf ===
 
 
 
The server edition should take care to set resolv.conf properly, but the desktop may require modification.
 
Add a namserver entry with the value 8.8.8.8 to /etc/resolvconf/resolv.conf.d/head. Adding an entry directly to /etc/resolv.conf will cause this to be lost after a reboot.
 
 
 
This will resolve nameservers using Google's global DNS servers after devstack reconfigures DNS.
 
 
 
 
 
<pre><nowiki>
 
echo 'nameserver 8.8.8.8' >> /etc/resolvconf/resolv.conf.d/head
 
resolvconf -u
 
</nowiki></pre>
 
 
 
 
 
=== Install Devstack ===
 
 
 
 
 
<pre><nowiki>
 
cd devstack
 
./stack.sh 
 
</nowiki></pre>
 
 
 
 
 
Note: Occasionally devstack will fail to install.  If this happens screen -x stack followed by screen ctrl-a \ followed by yes.  Then restarting stack.sh seems to work properly.
 
 
 
Please set password during devstack setup for the following services:
 
* MySQL
 
* Rabbit
 
* service token
 
* service password
 
* horizon/keystone
 
 
 
Note: These items will be identified by &lt;password type&gt; in this guide.
 
=== Create keystonerc ===
 
The keystonerc file contains security credentials for use with [[OpenStack]].
 
 
 
=== Create keystonerc ===
 
 
 
<pre><nowiki>
 
export ADMIN_TOKEN=<admin token password>
 
export OS_USERNAME=admin 
 
export OS_PASSWORD=password 
 
export OS_TENANT_NAME=admin 
 
export OS_AUTH_URL=http://127.0.0.1:5000/v2.0/
 
export OS_AUTH_STRATEGY=keystone 
 
</nowiki></pre>
 
 
 
 
 
=== Load keystonerc into your environment and verify evey thing is ok. ===
 
 
 
<pre><nowiki>
 
source keystonerc 
 
keystone user-list
 
</nowiki></pre>
 
  
 +
== Install Heat from master ==
  
== Install Heat from master ==
+
<source lang="bash">
{{
 
 
git clone git://github.com/openstack/heat.git   
 
git clone git://github.com/openstack/heat.git   
 
cd heat
 
cd heat
 
sudo ./install.sh   
 
sudo ./install.sh   
</nowiki></pre>
+
</source>
 
 
  
=== Modify /etc/heat/heat-api-cfn.conf and /etc/heat/heat-engine.conf to contain: ===
+
=== Modify configuration for admin password ===
 +
Later a keystone user called '''heat''' will be created. At this point a password for that user needs to be chosen.
 +
The following files will need editing:
  
<pre><nowiki>
+
* /etc/heat/heat-api-cfn-paste.ini
rpc_backend=heat.openstack.common.rpc.impl_kombu
+
* /etc/heat/heat-api-cloudwatch-paste.ini
rabbit_password=<rabbit password>
+
* /etc/heat/heat-api-paste.ini
</nowiki></pre>
 
  
 
+
<source lang="ini">
Note: The editor used must be started with sudo.
 
 
 
=== Modify /etc/heat/heat-api-cfn-paste.ini to contain: ===
 
 
 
<pre><nowiki>
 
 
[filter:authtoken]   
 
[filter:authtoken]   
admin_password=<admin password>
+
admin_password=<heat admin password>
</nowiki></pre>
+
</source>
 
 
Note: The editor used must be started with sudo.
 
  
 
=== Create the MySQL Heat database: ===
 
=== Create the MySQL Heat database: ===
  
<pre><nowiki>
+
<source lang="bash">
 
sudo heat-db-setup deb -r <mysql password>
 
sudo heat-db-setup deb -r <mysql password>
</nowiki></pre>
+
</source>
 
 
  
 
=== Create the keystone authentication parameters ===
 
=== Create the keystone authentication parameters ===
  
<pre><nowiki>
+
<source lang="bash">
 
sudo -E ./bin/heat-keystone-setup
 
sudo -E ./bin/heat-keystone-setup
</nowiki></pre>
+
</source>
  
 +
== Install Oz from the upstream master location ==
  
== Install OZ from the upstream master location ==
+
<source lang="bash">
 
+
git clone https://github.com/clalancette/oz.git
<pre><nowiki>
 
git clone https://github.com/clalancette/oz.git
 
 
cd oz
 
cd oz
 
make deb
 
make deb
 
cd ..
 
cd ..
sudo gdebi oz_0.8.0-1_all.deb
+
sudo dpkg -i oz_*_all.deb
</nowiki></pre>
+
sudo apt-get -f install
 +
</source>
  
 
Note: Select yes to "Create or update supermin appliance.".  This will rebuild the guestfs appliance to work with latest updates of Ubuntu.  Oz will not work properly without updating the guestfs appliance.
 
Note: Select yes to "Create or update supermin appliance.".  This will rebuild the guestfs appliance to work with latest updates of Ubuntu.  Oz will not work properly without updating the guestfs appliance.
Line 194: Line 124:
 
The heat-jeos tool builds virtual machine images for use with Heat.
 
The heat-jeos tool builds virtual machine images for use with Heat.
  
 
+
<source lang="bash">
<pre><nowiki>
+
git clone git://github.com/sdake/heat-jeos.git   
git clone git://github.com/heat-api/heat-jeos.git   
 
 
cd heat-jeos   
 
cd heat-jeos   
 
sudo python setup.py install   
 
sudo python setup.py install   
</nowiki></pre>
+
</source>
 
 
  
 
== Download ISO images for various distributions ==
 
== Download ISO images for various distributions ==
Line 210: Line 138:
 
After download completes, copy the iso image to the location heat-jeos expects:
 
After download completes, copy the iso image to the location heat-jeos expects:
  
<pre><nowiki>
+
<source lang="bash">
 
sudo cp Downloads/ubuntu-10.04.4-server-amd64.iso /var/lib/libvirt/images   
 
sudo cp Downloads/ubuntu-10.04.4-server-amd64.iso /var/lib/libvirt/images   
</nowiki></pre>
+
</source>
 
 
  
 
== Configure your host to work with Heat ==
 
== Configure your host to work with Heat ==
Line 219: Line 146:
 
=== Create SSH key and add it to the Nova sshkey list ===
 
=== Create SSH key and add it to the Nova sshkey list ===
  
<pre><nowiki>
+
<source lang="bash">
 
ssh-keygen -t rsa   
 
ssh-keygen -t rsa   
 
nova keypair-add --pub_key ~/.ssh/id_rsa.pub ${USER}_key   
 
nova keypair-add --pub_key ~/.ssh/id_rsa.pub ${USER}_key   
</nowiki></pre>
+
</source>
 
 
  
 
Note: If running in a VM, modify /etc/libvirt/qemu/networks/default.xml:   
 
Note: If running in a VM, modify /etc/libvirt/qemu/networks/default.xml:   
 
change network to not conflict with host (default 192.168.122.x)   
 
change network to not conflict with host (default 192.168.122.x)   
  
<pre><nowiki>
+
<source lang="bash">
 
sudo service libvirt-bin restart
 
sudo service libvirt-bin restart
</nowiki></pre>
+
</source>
 
 
  
 
=== If dnsmasq is not running on the default network ===
 
=== If dnsmasq is not running on the default network ===
  
<pre><nowiki>
+
<source lang="bash">
 
sudo virsh net-destroy default
 
sudo virsh net-destroy default
 
sudo virsh net-start default
 
sudo virsh net-start default
</nowiki></pre>
+
</source>
 
 
  
 
=== Configure libguestfs (required by Oz) to work in latest Ubuntu 12 ===
 
=== Configure libguestfs (required by Oz) to work in latest Ubuntu 12 ===
 
Some files shipped with Ubuntu 12 are incompatible with libguestfs used by the image creation software Oz.  To allow heat-jeos to work properly, run the following commands:
 
Some files shipped with Ubuntu 12 are incompatible with libguestfs used by the image creation software Oz.  To allow heat-jeos to work properly, run the following commands:
  
<pre><nowiki>
+
<source lang="bash">
 
sudo chmod 644 /boot/vmlinuz*
 
sudo chmod 644 /boot/vmlinuz*
 
sudo update-guestfs-appliance
 
sudo update-guestfs-appliance
</nowiki></pre>
+
</source>
  
 
Note: For more details see: http://permalink.gmane.org/gmane.comp.emulators.guestfs/1382
 
Note: For more details see: http://permalink.gmane.org/gmane.comp.emulators.guestfs/1382
Line 258: Line 182:
 
== Create the Heat JEOS image ==
 
== Create the Heat JEOS image ==
  
<pre><nowiki>
+
<source lang="bash">
 
sudo -E heat-jeos -y create U10-x86_64-cfntools --register-with-glance
 
sudo -E heat-jeos -y create U10-x86_64-cfntools --register-with-glance
</nowiki></pre>
+
</source>
  
 
Note: The -E option to sudo preserves the environment, specifically the keystone credentials, when heat-jeos is run as root.
 
Note: The -E option to sudo preserves the environment, specifically the keystone credentials, when heat-jeos is run as root.
Line 269: Line 193:
 
=== Execute the heat api services ===
 
=== Execute the heat api services ===
  
<pre><nowiki>
+
<source lang="bash">
 
sudo heat-engine &
 
sudo heat-engine &
 +
sudo heat-api &
 
sudo heat-api-cfn &  
 
sudo heat-api-cfn &  
 
sudo heat-api-cloudwatch &
 
sudo heat-api-cloudwatch &
</nowiki></pre>
+
</source>
 
 
  
 
=== Run the debian wordpress example ===
 
=== Run the debian wordpress example ===
  
<pre><nowiki>
+
<source lang="bash">
heat-cfn -d create wordpress --template-file=templates/WordPress_Single_Instance_deb.template --parameters="InstanceType=m1.xlarge;DBUsername=${USER};DBPassword=verybadpassword;KeyName=${USER}_key;LinuxDistribution=U10"
+
heat stack-create wordpress --template-file=templates/WordPress_Single_Instance_deb.template --parameters="InstanceType=m1.xlarge;DBUsername=${USER};DBPassword=verybadpassword;KeyName=${USER}_key;LinuxDistribution=U10"
</nowiki></pre>
+
</source>
 
 
  
 
=== List stacks ===
 
=== List stacks ===
  
 
+
<source lang="bash">
<pre><nowiki>
+
heat stack-list
heat-cfn list
+
</source>
</nowiki></pre>
 
 
 
  
 
=== List stack events ===
 
=== List stack events ===
  
 
+
<source lang="bash">
<pre><nowiki>
+
heat event-list wordpress
heat-cfn event-list wordpress
+
</source>
</nowiki></pre>
 
 
 
  
 
=== Describe the wordpress stack ===
 
=== Describe the wordpress stack ===
  
 +
<source lang="bash">
 +
heat stack-show wordpress
 +
</source>
  
<pre><nowiki>
+
Note: After a few seconds, the Status should change from IN_PROGRESS to CREATE_COMPLETE.
heat-cfn describe wordpress
 
</nowiki></pre>
 
 
 
Note: After a few seconds, the [[StackStatus]] should change from IN_PROGRESS to CREATE_COMPLETE.
 
  
 
=== Verify instance creation ===
 
=== Verify instance creation ===
Line 312: Line 230:
 
Because the software takes some time to install from the repository, it may be a few minutes before the Wordpress intance is in a running state.
 
Because the software takes some time to install from the repository, it may be a few minutes before the Wordpress intance is in a running state.
  
Point a web browser at the location given by the WebsiteURL Output as shown by heat describe::
+
Point a web browser at the location given by the WebsiteURL Output as shown by heat show-stack wordpress::
  
 
+
<source lang="bash">
<pre><nowiki>
 
 
wget ${WebsiteURL}
 
wget ${WebsiteURL}
</nowiki></pre>
+
</source>
 
 
  
 
=== Delete the instance when done ===
 
=== Delete the instance when done ===
  
<pre><nowiki>
+
<source lang="bash">
heat-cfn delete wordpress
+
heat stack-delete wordpress
heat-cfn list
+
heat stack-list
</nowiki></pre>
+
</source>
 
 
  
 
Note: This operation will show no running stack.
 
Note: This operation will show no running stack.
Line 332: Line 247:
 
== Troubleshooting ==
 
== Troubleshooting ==
  
If you encounter issues running heat, see if the solution to the issue is documented on the [http://wiki.openstack.org/Heat/Troubleshooting Troubleshooting wiki page]. If not, let us know about the problem in the #heat IRC channel on freenode.
+
If you encounter issues running heat, see if the solution to the issue is documented on the [http://wiki.openstack.org/Heat/TroubleShooting Troubleshooting wiki page]. If not, let us know about the problem in the #heat IRC channel on freenode.

Latest revision as of 19:04, 24 July 2014


NOTE (7/24/2014): this document is no longer maintained, Ubuntu users should refer to the documentation here: http://docs.openstack.org/developer/heat/getting_started/on_ubuntu.html


This guide will help to get the current git master of Heat to run on Ubuntu. It makes the following assumptions:

  • The host is running Ubuntu 12.04 or 12.10
  • There is a working OpenStack installation based on Essex or Folsom, or that one will be installed via the tools/openstack_ubuntu script described below
  • Heat will be installed on the controller host of the existing OpenStack installation (or if doing a single-host evaluation, on the same host as all other OpenStack services)

Get Heat

Clone the heat repository from GitHub:

git clone git://github.com/openstack/heat.git

Install OpenStack

Note, this section may be skipped if you already have a working OpenStack installation

Installing OpenStack on Ubuntu 12.04/12.10

A script called openstack_ubuntu in the tools directory of the Heat repository will install and start OpenStack for you on Ubuntu: Note currently only tested on 12.04, if it works for you on 12.10, please let us know

cd heat
./tools/openstack_ubuntu install -r ${MYSQL_ROOT_PASSWORD}

If you use this method, you will need to manually create a guest network. How this is done depends on your environment. An example network create operation:

sudo nova-manage network create --label=demonet --fixed_range_v4=${SUBNET} --bridge=demonetbr0 --bridge_interface=eth0"

Where ${SUBNET} is of the form 10.0.0.0/24. The network range here, must *not* be one used on your existing physical network. It should be a range dedicated for the network that OpenStack will configure. So if 10.0.0.0/24 clashes with your local network, pick another subnet.

The example above assumes you want to bridge with physical device eth0

Currently, the bridge is not created immediately upon running this command, but is actually added when Nova first requires it.

Load keystone authentication into your environment and verify everything is ok.

. ~/.openstack/keystonerc
keystone user-list
glance index
nova list

Note ~/.openstack/keystonerc is created by tools/openstack_ubuntu, replace this step with your own credentials file for an admin user if OpenStack was installed by some other method

Install prerequisites

sudo apt-get install python-pip gcc python2.7-dev
sudo apt-get install git
sudo apt-get install build-essential devscripts debhelper python-all gdebi-core
sudo apt-get install python-setuptools python-prettytable python-lxml
sudo apt-get install libguestfs*

Install python-heatclient (optional)

  • NOTE* If running 12.04 LTS with the packaged Openstack Essex release, do not install python-heatclient, as it will break your OpenStack installation, because it explicitly requires a version of the prettytable library (>0.6) which causes problems with the Essex cli tools (keystone/nova/glance) in 12.04 : https://bugs.launchpad.net/keystone/+bug/995976 The packaged python-prettytable (0.5 version) works OK
sudo pip install extras python-heatclient

Install Heat from master

git clone git://github.com/openstack/heat.git  
cd heat
sudo ./install.sh

Modify configuration for admin password

Later a keystone user called heat will be created. At this point a password for that user needs to be chosen. The following files will need editing:

  • /etc/heat/heat-api-cfn-paste.ini
  • /etc/heat/heat-api-cloudwatch-paste.ini
  • /etc/heat/heat-api-paste.ini
[filter:authtoken]  
admin_password=<heat admin password>

Create the MySQL Heat database:

sudo heat-db-setup deb -r <mysql password>

Create the keystone authentication parameters

sudo -E ./bin/heat-keystone-setup

Install Oz from the upstream master location

git clone https://github.com/clalancette/oz.git
cd oz
make deb
cd ..
sudo dpkg -i oz_*_all.deb
sudo apt-get -f install

Note: Select yes to "Create or update supermin appliance.". This will rebuild the guestfs appliance to work with latest updates of Ubuntu. Oz will not work properly without updating the guestfs appliance.

Note: We recommend cloning oz from the latest master. The debian packaging is broken in older versions and U10/U12 support is not available in Oz shipped with distros.

Install heat-jeos from master

The heat-jeos tool builds virtual machine images for use with Heat.

git clone git://github.com/sdake/heat-jeos.git  
cd heat-jeos  
sudo python setup.py install

Download ISO images for various distributions

If you just want to try a basic wordpress template, download [Ubuntu 10.04.4 Server](http://releases.ubuntu.com/10.04.4/ubuntu-10.04.4-server-amd64.iso)

If you want to try more templates, also download [Fedora 17](http://download.fedoraproject.org/pub/fedora/linux/releases/17/Fedora/x86_64/iso/Fedora-17-x86_64-DVD.iso)

After download completes, copy the iso image to the location heat-jeos expects:

sudo cp Downloads/ubuntu-10.04.4-server-amd64.iso /var/lib/libvirt/images

Configure your host to work with Heat

Create SSH key and add it to the Nova sshkey list

ssh-keygen -t rsa  
nova keypair-add --pub_key ~/.ssh/id_rsa.pub ${USER}_key

Note: If running in a VM, modify /etc/libvirt/qemu/networks/default.xml: change network to not conflict with host (default 192.168.122.x)

sudo service libvirt-bin restart

If dnsmasq is not running on the default network

sudo virsh net-destroy default
sudo virsh net-start default

Configure libguestfs (required by Oz) to work in latest Ubuntu 12

Some files shipped with Ubuntu 12 are incompatible with libguestfs used by the image creation software Oz. To allow heat-jeos to work properly, run the following commands:

sudo chmod 644 /boot/vmlinuz*
sudo update-guestfs-appliance

Note: For more details see: http://permalink.gmane.org/gmane.comp.emulators.guestfs/1382 and http://libguestfs.org/guestfs-faq.1.html

Note: If you want to create F17 images, you may need a new libguestfs binary of version 1.18.0 or later. Ubuntu Precise may not have this version yet.

You can use the Debian Wheezy version including the [guestfs shared library](http://packages.debian.org/wheezy/amd64/libguestfs0/download), the [tools](http://packages.debian.org/wheezy/amd64/libguestfs-tools/download) and the and the [python libraries](http://packages.debian.org/wheezy/amd64/python-guestfs/download).

Create the Heat JEOS image

sudo -E heat-jeos -y create U10-x86_64-cfntools --register-with-glance

Note: The -E option to sudo preserves the environment, specifically the keystone credentials, when heat-jeos is run as root.

Note: heat-jeos must be run as root in order to create the cfntools disk image.

Experiment with Heat

Execute the heat api services

sudo heat-engine &
sudo heat-api & 
sudo heat-api-cfn & 
sudo heat-api-cloudwatch &

Run the debian wordpress example

heat stack-create wordpress --template-file=templates/WordPress_Single_Instance_deb.template --parameters="InstanceType=m1.xlarge;DBUsername=${USER};DBPassword=verybadpassword;KeyName=${USER}_key;LinuxDistribution=U10"

List stacks

heat stack-list

List stack events

heat event-list wordpress

Describe the wordpress stack

heat stack-show wordpress

Note: After a few seconds, the 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 intance is in a running state.

Point a web browser at the location given by the WebsiteURL Output as shown by heat show-stack wordpress::

wget ${WebsiteURL}

Delete the instance when done

heat stack-delete wordpress
heat stack-list

Note: This operation will show no running stack.

Troubleshooting

If you encounter issues running heat, see if the solution to the issue is documented on the Troubleshooting wiki page. If not, let us know about the problem in the #heat IRC channel on freenode.