启动实例¶
在包含 Orchestration 服务的环境中,您可以创建一个启动实例的堆栈。
创建模板¶
Orchestration 服务使用模板来描述堆栈。要了解模板语言,请参阅 模板指南。
创建
demo-template.yml文件,内容如下heat_template_version: 2015-10-15 description: Launch a basic instance with CirrOS image using the ``m1.tiny`` flavor, ``mykey`` key, and one network. parameters: NetID: type: string description: Network ID to use for the instance. resources: server: type: OS::Nova::Server properties: image: cirros flavor: m1.tiny key_name: mykey 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 ] }
创建堆栈¶
使用 demo-template.yml 模板创建堆栈。
获取
demo凭证,以非管理项目身份执行以下步骤$ . demo-openrc
确定可用的网络。
$ openstack network list +--------------------------------------+-------------+--------------------------------------+ | ID | Name | Subnets | +--------------------------------------+-------------+--------------------------------------+ | 4716ddfe-6e60-40e7-b2a8-42e57bf3c31c | selfservice | 2112d5eb-f9d6-45fd-906e-7cabd38b7c7c | | b5b6993c-ddf9-40e7-91d0-86806a42edb8 | provider | 310911f6-acf0-4a47-824e-3032916582ff | +--------------------------------------+-------------+--------------------------------------+
注意
此输出可能与您的环境不同。
将
NET_ID环境变量设置为反映网络的 ID。例如,使用提供商网络$ export NET_ID=$(openstack network list | awk '/ provider / { print $2 }')
在提供商网络上创建包含一个 CirrOS 实例的堆栈
$ openstack stack create -t demo-template.yml --parameter "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 | +--------------------------------------+------------+--------------------+---------------------+--------------+
经过短时间后,验证堆栈是否成功创建
$ openstack 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 | +--------------------------------------+------------+-----------------+---------------------+--------------+
显示实例的名称和 IP 地址,并与 OpenStack 客户端的输出进行比较
$ openstack stack 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" } ]
$ openstack server list +--------------------------------------+---------------------------+--------+---------------------------------+ | ID | Name | Status | Networks | +--------------------------------------+---------------------------+--------+---------------------------------+ | 0fc2af0c-ae79-4d22-8f36-9e860c257da5 | stack-server-3nzfyfofu6d4 | ACTIVE | public=10.4.31.106 | +--------------------------------------+---------------------------+--------+---------------------------------+
删除堆栈。
$ openstack stack delete --yes stack