How to get Heat to work with a remote Openstack.

Say you have a remote/public install of Openstack and you want to use a local install of Heat
to talk to it. I find this handy when developing, as the remote Openstack can be kept stable
and is not effected by changes made to the development machine.

So lets say you have 2 machines:

  • “rock” ip == 192.168.1.88 (used for base Openstack services)
  • “hack” ip == 192.168.1.77 (used for Heat development)

Install your Openstack as normal on “rock”.

I used devstack to install Heat on “hack”.
My localrc looked like this:

HEAT_STANDALONE=True
KEYSTONE_AUTH_HOST=192.168.1.88
KEYSTONE_AUTH_PORT=35357
KEYSTONE_AUTH_PROTOCOL=http
KEYSTONE_SERVICE_HOST=$KEYSTONE_AUTH_HOST
KEYSTONE_SERVICE_PORT=$KEYSTONE_AUTH_PORT
KEYSTONE_SERVICE_PROTOCOL=$KEYSTONE_AUTH_PROTOCOL

MY_PASSWORD=abetterpasswordthanthis
DATABASE_PASSWORD=$MY_PASSWORD
RABBIT_PASSWORD=$MY_PASSWORD

disable_all_services
ENABLED_SERVICES=qpid
enable_service mysql heat h-api h-api-cfn h-api-cw h-eng

Then run your ./stack.sh as normal.

You then need a special environment (not devstack/openrc) to make this work.
go to your “rock” machine and get the tenant_id that you want to work with:

keystone tenant-list
+----------------------------------+--------------------+---------+
|                id                |        name        | enabled |
+----------------------------------+--------------------+---------+
| 6943e3ebad0d465387d05d73f8e0b3fc |       admin        |   True  |
| b12482712e354dd3b9f64ce608ba20f3 |      alt_demo      |   True  |
| bf03bf32e3884d489004ac995ff7a61c |        demo        |   True  |
| c23ceb3bf5dd4f9692488855de99137b | invisible_to_admin |   True  |
| c328c1f3b945487d859ed2f53dcf0fe4 |      service       |   True  |
+----------------------------------+--------------------+---------+

I wanted “demo”.
Now make a file to store your new environment (heat.env).

export HEAT_URL=http://192.168.1.77:8004/v1/bf03bf32e3884d489004ac995ff7a61c
export OS_NO_CLIENT_AUTH=True
export OS_USERNAME=admin
export OS_TENANT_NAME=demo
export OS_PASSWORD=abetterpasswordthanthis
export OS_AUTH_URL=http://192.168.1.88:35357/v2.0/

Now you use this like:

. heat.env
heat list

Note: remember to open up firewall ports on “rock” so that you can access the OpenStack services.

Leave a comment

Follow

Get every new post delivered to your Inbox.