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
5.3 KiB
Orchestration
Create a template
The Orchestration module uses templates to describe stacks. To learn about the template language, see the Template Guide in the Heat developer documentation.
Create the
demo-template.yml
file with the following content: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:$ source demo-openrc.sh
Determine available networks.
$ 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 thepublic
network:$ export NET_ID=$(neutron net-list | awk '/ public / { print $2 }')
Create a stack of one CirrOS instance on the public network:
$ 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:
$ 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:$ 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.
$ heat stack-delete stack