openstack-manuals/doc/install-guide/source/launch-instance-heat.rst
Matthew Kassawara 6b11ba1de9 [install] Liberty updates for heat
Update heat configuration for Liberty. Includes moving
stack creation to the launch instance section. Also
addresses some consistency issues, mostly from the RST
conversion.

Changes and testing specific to distribution packages
primarily involve Ubuntu. Other distributions may require
additional patches.

Change-Id: Ib1ba4987eabe15a2100a58d1448507c203fc25f3
Implements: blueprint installguide-liberty
2015-10-13 10:10:47 -06:00

136 lines
5.3 KiB
ReStructuredText

.. _launch-instance-heat:
Orchestration
~~~~~~~~~~~~~
Create a template
-----------------
The Orchestration module uses templates to describe stacks.
To learn about the template language, see `the Template Guide
<http://docs.openstack.org/developer/heat/template_guide/index.html>`__
in the `Heat developer documentation
<http://docs.openstack.org/developer/heat/index.html>`__.
#. Create the ``demo-template.yml`` file with the following content:
.. code-block:: yaml
heat_template_version: 2015-10-15
description: Launch a basic instance using the ``m1.tiny`` flavor and one network.
parameters:
ImageID:
type: string
description: Image to use for the instance.
NetID:
type: string
description: Network ID to use for the instance.
resources:
server:
type: OS::Nova::Server
properties:
image: { get_param: ImageID }
flavor: m1.tiny
networks:
- network: { get_param: NetID }
outputs:
instance_name:
description: Name of the instance.
value: { get_attr: [ server, name ] }
instance_ip:
description: IP address of the instance.
value: { get_attr: [ server, first_address ] }
Create a stack
--------------
Create a stack using the ``demo-template.yml`` template.
#. Source the ``demo`` credentials to perform
the following steps as a non-administrative project:
.. code-block:: console
$ source demo-openrc.sh
#. Determine available networks.
.. code-block:: console
$ neutron net-list
+--------------------------------------+---------+-----------------------------------------------------+
| id | name | subnets |
+--------------------------------------+---------+-----------------------------------------------------+
| 9c13da20-4c4f-486f-a4e9-692e9ea397f1 | public | 85140549-1f54-4bc6-a2c5-f08428de3f7a 203.0.113.0/24 |
| 303a9aaf-40fd-4fc8-9213-39bff933467b | private | ddeba0b1-21eb-471a-8f31-10f0e290cc36 172.16.1.0/24 |
+--------------------------------------+---------+-----------------------------------------------------+
.. note::
This output may differ from your environment.
#. Set the ``NET_ID`` environment variable to reflect the ID of a network.
For example, using the ``public`` network:
.. code-block:: console
$ export NET_ID=$(neutron net-list | awk '/ public / { print $2 }')
#. Create a stack of one CirrOS instance on the public network:
.. code-block:: console
$ heat stack-create -f demo-template.yml \
-P "ImageID=cirros;NetID=$NET_ID" stack
+--------------------------------------+------------+--------------------+---------------------+--------------+
| id | stack_name | stack_status | creation_time | updated_time |
+--------------------------------------+------------+--------------------+---------------------+--------------+
| dbf46d1b-0b97-4d45-a0b3-9662a1eb6cf3 | stack | CREATE_IN_PROGRESS | 2015-10-13T15:27:20 | None |
+--------------------------------------+------------+--------------------+---------------------+--------------+
#. After a short time, verify successful creation of the stack:
.. code-block:: console
$ heat stack-list
+--------------------------------------+------------+-----------------+---------------------+--------------+
| id | stack_name | stack_status | creation_time | updated_time |
+--------------------------------------+------------+-----------------+---------------------+--------------+
| dbf46d1b-0b97-4d45-a0b3-9662a1eb6cf3 | stack | CREATE_COMPLETE | 2015-10-13T15:27:20 | None |
+--------------------------------------+------------+-----------------+---------------------+--------------+
#. Show the name and IP address of the instance and compare with the output
of the ``nova`` command:
.. code-block:: console
$ heat output-show --all stack
[
{
"output_value": "stack-server-3nzfyfofu6d4",
"description": "Name of the instance.",
"output_key": "instance_name"
},
{
"output_value": "10.4.31.106",
"description": "IP address of the instance.",
"output_key": "instance_ip"
}
]
$ nova list
+--------------------------------------+---------------------------+--------+------------+-------------+---------------------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+---------------------------+--------+------------+-------------+---------------------------------+
| 0fc2af0c-ae79-4d22-8f36-9e860c257da5 | stack-server-3nzfyfofu6d4 | ACTIVE | - | Running | public=10.4.31.106 |
+--------------------------------------+---------------------------+--------+------------+-------------+---------------------------------+
#. Delete the stack.
.. code-block:: console
$ heat stack-delete stack