前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >玩转企业云计算平台系列(十一):Openstack 编排服务 Heat

玩转企业云计算平台系列(十一):Openstack 编排服务 Heat

作者头像
民工哥
发布2024-01-18 15:54:46
3000
发布2024-01-18 15:54:46
举报

Heat 服务介绍

OpenStack Heat 是一个基于模板的编排服务,用于自动化部署和管理基础设施资源。它允许用户通过编写模板文件来描述所需的基础设施资源和配置,然后使用 Heat 引擎来解析和执行这些模板,自动创建、配置和管理云环境中的资源。

例如,假设我们有一个Web应用程序,它需要一个虚拟机作为Web服务器、一个存储卷用于存储数据、一个网络用于连接虚拟机和存储卷。我们可以使用Heat模板来描述这些资源和它们之间的关系。在模板中,我们可以指定虚拟机的镜像、网络的子网、存储卷的大小等属性,并定义资源之间的依赖关系,比如虚拟机需要在存储卷创建完成后才能启动。一旦我们创建了这个模板,就可以使用Heat服务来部署和管理这个应用程序。Heat会根据模板中的描述,自动创建和配置虚拟机、存储卷和网络等资源。而当我们需要更新或删除这些资源时,只需要修改模板并重新执行Heat命令,它会根据模板中的变化来自动更新或删除相应的资源。

更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。

为什么需要Heat

更快更有效的管理 OpenStack 的资源:云平台系统在相对比较稳定的情况下,管理成本逐渐变成首要的解决问题。云上自动化能力是一个云平台的刚需,可以有效降低维护难度。Heat 采用了模板方式来设计或者定义编排,为方便用户使用,Heat 还提供了大量的模板例子,使用户能够方便地得到想要的编排。

更小的研发成本:引入 Heat,对于不了解 OpenStack 的研发者来说,可以更快的接入现有的业务系统。开发者更关心的是授权认证和对虚拟资源的增删改,而对于底层的状态并不用太多了解。

Heat 相关概念

  • 堆栈(stack):管理资源的集合。单个模板中定义的实例化资源的集合,是 Heat 管理应用程序的逻辑单元,往往对应一个应用程序。
  • 模板(template):如何使用代码定义和描述堆栈。描述了所有组件资源以及组件资源之间的关系,是 Heat 的核心。
  • 资源(resource):将在编排期间创建或修改的对象。资源可以是网络、路由器、子网、实例、卷、浮动IP、安全组等。
  • 参数(parameters):heat模板中的顶级key,定义在创建或更新 stack 时可以传递哪些数据来定制模板。
  • 参数组(parameter_groups):用于指定如何对输入参数进行分组,以及提供参数的顺序。
  • 输出(outputs):heat模板中的顶级key,定义实例化后 stack 将返回的数据。

Heat 核心架构

  • heat command-line client:CLI通过与 heat-api 通信,来调用 API 实现相关功能。终端开发者可以直接使用编排 REST API。
  • heat-api:实现 OpenStack 原生支持的 REST API。该组件通过把 API 请求经由 AMQP 传送给 Heat engine 来处理 API 请求。
  • heat-api-cfn:提供与 AWS CloudFormation 兼容的、AWS 风格的查询 API,处理请求并通过 AMQP 将它们发送到 heat-engine。
  • heat-engine:执行模板内容,最终完成应用系统的创建和部署,并把执行结果返回给 API 调用者。
  • heat-cfntools:完成虚拟机实例内部的操作配置任务,需要单独下载。

Heat 工作流程

  • 用户在 Horizon 中或者命令行中提交包含模板和参数输入的请求。
  • Horizon 或者命令行工具会将接收到的请求转化为 REST 格式的 API 调用 Heat-api 或者是 Heat-api-cfn。
  • Heat-api 和 Heat-api-cfn 会验证模板的正确性,然后通过 AMQP 异步传递给 Heat Engine 来处理请求。
  • Heat Engine 接收到请求后,会把请求解析为各种类型的资源,每种资源都对应 OpenStack 其它的服务客户端,然后通过发送 REST 的请求给其它服务。
  • Heat Engine 在这里的作用分为三层:第一层处理 Heat 层面的请求,就是根据模板和输入参数来创建 Stack,这里的 Stack 是由各种资源组合而成。第二层解析 Stack 里各种资源的依赖关系,Stack 和嵌套 Stack 的关系。第三层就是根据解析出来的关系,依次调用各种服务客户段来创建各种资源。

准备环境

配置Heat服务组件之前,需要先创建数据库、服务证书和API endpoint。更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。

创建数据库

①在操作系统终端连接数据库

代码语言:javascript
复制
[root@controller ~]# mysql -uroot -p000000

②创建heat数据库

代码语言:javascript
复制
MariaDB [(none)]> CREATE DATABASE heat;

③Heat数据库访问权限设置

代码语言:javascript
复制
MariaDB [(none)]> GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'%'  IDENTIFIED BY '000000';

④退出数据库

加载admin user 的环境变量
代码语言:javascript
复制
[root@controller ~]# source admin-openrc.sh
创建服务凭证

①创建Heat用户

代码语言:javascript
复制
[root@controller ~]# openstack user create --domain default --password 000000 heat
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | c2774323d7e04a529d1fcdc18d6549f9 |
| name                | heat                             |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

②admin为用户添加角色heat

代码语言:javascript
复制
[root@controller ~]# openstack role add --project service --user heat admin

③创建Heat和heat-cfn service entity

代码语言:javascript
复制
[root@controller ~]# openstack service create --name heat  --description "Orchestration" orchestration
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Orchestration                    |
| enabled     | True                             |
| id          | 7ce739d29f3841ad9bed4d286f546bd7 |
| name        | heat                             |
| type        | orchestration                    |
+-------------+----------------------------------+
[root@controller ~]# openstack service create --name heat-cfn --description "Orchestration"  cloudformation
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Orchestration                    |
| enabled     | True                             |
| id          | f1c9a2b146b94d75b19a13f1b806e4d8 |
| name        | heat-cfn                         |
| type        | cloudformation                   |
+-------------+----------------------------------+
创建Heat编排服务组件的API endpoint
代码语言:javascript
复制
[root@controller ~]# openstack endpoint create --region RegionOne  orchestration public http://controller:8004/v1/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | 56d9afe212be479394529d2e5b33e9bc        |
| interface    | public                                  |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | 7ce739d29f3841ad9bed4d286f546bd7        |
| service_name | heat                                    |
| service_type | orchestration                           |
| url          | http://controller:8004/v1/%(tenant_id)s |
+--------------+-----------------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne  orchestration internal http://controller:8004/v1/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | b77211d055ac468094a1834318a24341        |
| interface    | internal                                |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | 7ce739d29f3841ad9bed4d286f546bd7        |
| service_name | heat                                    |
| service_type | orchestration                           |
| url          | http://controller:8004/v1/%(tenant_id)s |
+--------------+-----------------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne orchestration admin http://controller:8004/v1/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | 02f7ab4296a94dc1ac909cf7e83b91bc        |
| interface    | admin                                   |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | 7ce739d29f3841ad9bed4d286f546bd7        |
| service_name | heat                                    |
| service_type | orchestration                           |
| url          | http://controller:8004/v1/%(tenant_id)s |
+--------------+-----------------------------------------+
代码语言:javascript
复制
 [root@controller ~]# openstack endpoint create --region RegionOne cloudformation public http://controller:8000/v1
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 26264981dd3a414aa18fd64e4ec2ba84 |
| interface    | public                           |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | f1c9a2b146b94d75b19a13f1b806e4d8 |
| service_name | heat-cfn                         |
| service_type | cloudformation                   |
| url          | http://controller:8000/v1        |
+--------------+----------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne cloudformation internal http://controller:8000/v1
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 9b4f604bb0984b63ad050655762a7d41 |
| interface    | internal                         |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | f1c9a2b146b94d75b19a13f1b806e4d8 |
| service_name | heat-cfn                         |
| service_type | cloudformation                   |
| url          | http://controller:8000/v1        |
+--------------+----------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne cloudformation admin http://controller:8000/v1
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 9c8c76a1b03a44a8a7728fa47670410e |
| interface    | admin                            |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | f1c9a2b146b94d75b19a13f1b806e4d8 |
| service_name | heat-cfn                         |
| service_type | cloudformation                   |
| url          | http://controller:8000/v1        |
+--------------+----------------------------------+
创建Orchestration服务需要在Identity服务中添加信息,用以操作Stack

①创建Heat域

代码语言:javascript
复制
[root@controller ~]# openstack domain create --description "Stack projects and users" heat
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Stack projects and users         |
| enabled     | True                             |
| id          | 3fb118462aa344ba8c0fb36fc0296fa7 |
| name        | heat                             |
| options     | {}                               |
| tags        | []                               |
+-------------+----------------------------------+

②创建heat_domain_admin用户,管理Heat域中的project和user

代码语言:javascript
复制
[root@controller ~]# openstack user create --domain heat --password-prompt heat_domain_admin
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | 3fb118462aa344ba8c0fb36fc0296fa7 |
| enabled             | True                             |
| id                  | 2632b29ed7a746e4bf01466c475fcf57 |
| name                | heat_domain_admin                |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

③将admin角色添加到heat_domain_admin域中的用户 heat以启用heat_domain_admin用户的管理堆栈管理权限

代码语言:javascript
复制
[root@controller ~]# openstack role add --domain heat --user-domain heat --user heat_domain_admin admin

④创建 heat_stack_owner 角色

代码语言:javascript
复制
[root@controller ~]# openstack role create heat_stack_owner
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | None                             |
| domain_id   | None                             |
| id          | 816798fab0bf4825a4a71d36ade47f44 |
| name        | heat_stack_owner                 |
| options     | {}                               |
+-------------+----------------------------------+

⑤将heat_stack_owner角色添加到demoproject和user,使demo user 可以管理 Stack

代码语言:javascript
复制
[root@controller ~]# openstack role add --project demo --user demo heat_stack_owner

⑥创建heat_stack_user_role

代码语言:javascript
复制
[root@controller ~]# openstack role create heat_stack_user
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | None                             |
| domain_id   | None                             |
| id          | a1b8a79460f04f28ba5c12bc372304d3 |
| name        | heat_stack_user                  |
| options     | {}                               |
+-------------+----------------------------------+

更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。

安装和配置Heat编排服务组件

安装软件包
代码语言:javascript
复制
[root@controller ~]# yum install -y openstack-heat-api openstack-heat-api-cfn openstack-heat-engine openstack-heat-ui
配置文件

编辑/etc/heat/heat.conf文件并完成以下操作。

①在[database]部分中,配置数据库访问

代码语言:javascript
复制
[database]
connection = mysql+pymysql://heat:000000@controller/heat

②在[DEFAULT]部分中,配置RabbitMQ消息队列访问

代码语言:javascript
复制
[DEFAULT]
transport_url = rabbit://openstack:000000@controller

③在[keystone_authtoken][trustee]、 和[clients_keystone]部分中,配置身份服务访问

代码语言:javascript
复制
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = heat
password = 000000

[trustee]
auth_type = password
auth_url = http://controller:5000
username = heat
password = 000000
user_domain_name = default

[clients_keystone]
auth_uri = http://controller:5000

④在[DEFAULT]部分中,配置元数据和等待条件 URL

代码语言:javascript
复制
[DEFAULT]
heat_metadata_server_url = http://controller:8000
heat_waitcondition_server_url = http://controller:8000/v1/waitcondition

⑤在[DEFAULT]部分中,配置堆栈域和管理凭据

代码语言:javascript
复制
[DEFAULT]
stack_domain_admin = heat_domain_admin
stack_domain_admin_password = 000000
stack_user_domain_name = heat
同步数据库
代码语言:javascript
复制
[root@controller ~]#  su -s /bin/sh -c "heat-manage db_sync" heat
完成安装

启动 Orchestration 服务并将其配置为开机自启。

代码语言:javascript
复制
[root@controller ~]# systemctl start openstack-heat-api.service  openstack-heat-api-cfn.service openstack-heat-engine.service &&  systemctl enable openstack-heat-api.service  openstack-heat-api-cfn.service openstack-heat-engine.service
# 自行查看log文件是否报错

更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。

验证

(1)加载环境变量

代码语言:javascript
复制
[root@controller ~]# source admin-openrc.sh

(2)列出Heat编排服务组件进程是否成功启动和注册

代码语言:javascript
复制
[root@controller ~]# openstack orchestration service list
+------------+-------------+--------------------------------------+------------+--------+----------------------------+--------+
| Hostname   | Binary      | Engine ID                            | Host       | Topic  | Updated At                 | Status |
+------------+-------------+--------------------------------------+------------+--------+----------------------------+--------+
| controller | heat-engine | 4c0919cf-a36b-449c-8fa6-4dad9f355a43 | controller | engine | 2023-07-01T01:53:55.000000 | up     |
| controller | heat-engine | acc70835-f179-44c7-9ae6-e900cdda1fa8 | controller | engine | 2023-07-01T01:53:55.000000 | up     |
| controller | heat-engine | f9dc47f6-06ad-4dbb-afc5-7f4138b58d3b | controller | engine | 2023-07-01T01:53:55.000000 | up     |
| controller | heat-engine | 7c95fd77-74f8-4cd9-ac8e-984c36554ad8 | controller | engine | 2023-07-01T01:53:55.000000 | up     |
+------------+-------------+--------------------------------------+------------+--------+----------------------------+--------+

编写 Heat 模板执行 yaml 文件可以创建名为 heat-swift 的容器

代码语言:javascript
复制
[root@controller ~]# vim swift.yaml 
heat_template_version: 2014-10-16
description: "创建容器"
resources:
  user:
    type: OS::Swift::Container
    properties:
      name: heat-swift
[root@controller ~]# openstack stack create csqstack -t create_container.yaml 
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| id                  | 82f6fda4-fa1c-4cc7-b8f1-340f6e13d266 |
| stack_name          | csqstack                             |
| description         | 创建容器                             |
| creation_time       | 2023-07-01T11:49:09Z                 |
| updated_time        | None                                 |
| stack_status        | CREATE_IN_PROGRESS                   |
| stack_status_reason | Stack CREATE started                 |
+---------------------+--------------------------------------+
[root@controller ~]# swift list
heat-swift

使用 Heat实现自动化部署云主机

编配服务的基本概念

Heat是一个基于模板来编排复合云应用的服务。Heat 目前支持两种格式的模板,一种是基于 JSON 格式的 CFN 模板,另外一种是基于 YAML 格式的 HOT 模板。CFN 模板主要是为了保持对 AWS 的兼容性。HOT 模板是 Heat 自有的,资源类型更加丰富,更能体现出 Heat 特点的模板。

一个典型的 HOT 模板由下列元素构成
  • 模板版本:必填字段,指定对应的模板版本,Heat 会根据版本进行检验。
  • 资源列表:必填,指生成的 Stack 所包含的各种资源。可以定义资源间的依赖关系,比如说生成 Port,然后再用 port 来生成 VM。
  • 参数列表:选填,指输入参数列表。
  • 输出列表:选填,指生成的 Stack 暴露出来的信息,可以用来给用户使用,也可以用来作为输入提供给其它的 Stack。
Heat Engine 的作用分为三层
  • 第一层处理 Heat 层面的请求,就是根据模板和输入参数来创建 Stack,这里的 Stack 是由各种资源组合而成。
  • 第二层解析 Stack 里各种资源的依赖关系,Stack 和嵌套 Stack 的关系。
  • 第三层根据解析出来的关系,依次调用各种服务客户端来创建各种资源。
heat模板
代码语言:javascript
复制
heat_template_version: 2013-05-23  //版本信息
parameters:  //自定义的变量
ImageID:
type: string
resources:  //描述的资源,如网络、实例
  server1:
type: OS::Nova::Server
outputs:  //返回值
  server1_private_ip:
value: { get_attr: [ server1, first_address ] }
编配服务编排

编排:按照一定的目的依次排列。

一个完整的编排包括设置服务器上机器、安装 CPU、内存、硬盘、通电、插入网络接口、安装操作系统、配置操作系统、安装中间件、配置中间件、安装应用程序、配置应用发布程序。对于复杂的需要部署在多台服务器上的应用,需要重复这个过程,而且需要协调各个应用模块的配置,下图显示了一个典型应用需要编排的项目。

heat编排

Heat:Heat 在这种情况下应运而生,它采用了业界流行的模板方式进行设计和定义编排。用户只需要打开文本编辑器,编写一段基于 Key-Value 的模板,就能够方便地得到想要的编排。为了方便用户的使用,Heat 提供了大量的模板例子,通常用户只需要选择想要的编排,通过拷贝、粘贴的方式来完成模板的编写。

Heat 的编排方式如下:
  • 首先OpenStack自身提供的基础架构资源,包括计算、网络和存储等资源。通过编排这些资源,用户就可以得到最基本的 VM。此外在编排 VM 的过程中,用户可以编写简单脚本,以便对 VM 做些简单的配置。
  • 然后用户可以通过 Heat 提供的 Software Configuration 和 Software Deployment 等对 VM 进行复杂的配置,比如安装软件和配置软件等。
  • 其次当用户有一些高级的功能需求,比如需要一组能够根据负荷自动伸缩的 VM 组,或者一组负载均衡的 VM时,Heat 提供了AutoScaling和 Load Balance等模板进行支持。
编配服务heat的运维基础
代码语言:javascript
复制
#使用栈模板test-stack.yml创建一个名为Orchestration的栈。
heat stack-create orchestration -f test-stack1.yml --parameters "ImageID=centos6.5;NetID=sharednet1"

#查询栈列表
heat stack-list

#查看栈的详细信息
heat stack-show orchestration

#删除栈
heat stack-delete orchestration

#查看栈资源列表
heat resource-list orchestration

#查看栈资源
heat resource-show orchestration server1

#查看输出列表
heat output-list orchestration

#查看输出值
heat output-show orchestration server1_private_ip

#查看事件列表
heat event-list orchestration

#查看资源事件详细信息
heat event-show orchestration server1 10c307a5-1732-4f10-8b91-d9b23402661d

任务要求:为了使用编配服务实现自动化部署云主机,需要执行三个步骤:

代码语言:javascript
复制
基于xiandian,首先都需要生效环境变量,获取令牌(source /etc/keystone/admin-openrc.sh)。

第一步:获取基础资源信息(如果没有,则需要重新创建),包括认证、镜像、网络、计算、存储等资源,同时还需要设置密钥对和安全组策略。
#查看当前的部门信息,即租户列表
[root@xiandian ~]#openstack project list
#创建新部门
[root@xiandian ~]#openstack project create cookbook --domain xiandian
[root@xiandian ~]#openstack project list
#创建新角色
[root@xiandian ~]#openstack role create manager
[root@xiandian ~]#openstack role list
#创建新用户cook001
[root@xiandian ~]#openstack user create cook001 --password 000000 --domain xiandian --email cook001@xiandian.com
[root@xiandian ~]#openstack user list
#为新用户分配部门,安排角色,就是把三者绑定
[root@xiandian ~]# openstack role add manager --user cook001 --project cookbook
#镜像服务glance
[root@xiandian ~]#glance image-list
#获取源文件
[root@xiandian ~]#wget ftp://172.16.102.20/cirros-0.3.4-x86_64-disk.img
#使用当前源文件创建镜像
[root@xiandian ~]#glance image-create --name cirros50 --disk-format qcow2 --container-format bare --progress<cirros-0.3.4-x86_64-disk.img
[root@xiandian ~]#glance image-list
[root@xiandian ~]#glance image-create --name cirros150 --disk-format vmdk --container-format bare --progress<cirros-0.3.4-x86_64-disk.img
[root@xiandian ~]#glance image-list
#设置镜像的最小启动硬盘大小和内存大小
[root@xiandian ~]#glance image-update --min-disk=20 --min-ram=2048 镜像id号
# 查看当前可用网络
[root@xiandian ~]#neutron net-list
#创建子网subnet50
[root@xiandian ~]#neutron subnet-create sharednet1 --name subnet50 --gateway 192.168.50.1 192.168.50.0/24
[root@xiandian ~]#neutron net-list
[root@xiandian ~]#neutron subnet-list
#计算服务(确定云主机的主机类型flavor)
[root@xiandian ~]#nova flavor-list
#创建自定义主机类型
[root@xiandian ~]#nova flavor-create cook.small 6 4096 60 4 
[root@xiandian ~]#nova flavor-list
#生成密钥对keypair
[root@xiandian ~]#nova keypair-list
[root@xiandian ~]#nova keypair-add mykey > mykey
[root@xiandian ~]#nova keypair-list
#设置安全组secgroup策略
[root@xiandian ~]#nova secgroup-list
#自定义安全组cookbook
[root@xiandian ~]#nova secgroup-create cookbook-rules 'create a secgroup for cookbook'
#为安全组添加规则
[root@xiandian ~]#nova secgroup-add-rule cookbook-rules ICMP -1 -1 0.0.0.0/0
[root@xiandian ~]#nova secgroup-add-rule cookbook-rules UDP 83 83 192.168.50.0/24
[root@xiandian ~]#nova secgroup-list-rules cookbook-rules

第二步:编写编配脚本文件test50.yml
[root@xiandian ~]#vi test50.yml    #见图一
[root@xiandian ~]#chmod -X test50.yml

第三步:使用test50.yml这个文件创建栈资源,启动云主机
[root@xiandian ~]#heat stack-create test50-1 -f test50.yml
#查看栈列表
[root@xiandian ~]#heat stack-list
[root@xiandian ~]#nova list
[root@xiandian ~]#heat stack-create test50-2 -f test50.yml
#编写完整地heat模板文件
[root@xiandian ~]#vi test50-3.yml   #见图二
[root@xiandian ~]#heat stack-create test50-3 -f test50-3.yml --parameterts " Name=myinstance;Image=cirros50"
[root@xiandian ~]#heat stack-list

图一:

图二:

参考链接:https://blog.csdn.net/qq_52089863/ article/details/131487982 https://blog.csdn.net /Mediocre_person/article/details/122093479

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 民工哥技术之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Heat 服务介绍
  • 为什么需要Heat
  • Heat 相关概念
  • Heat 核心架构
  • Heat 工作流程
  • 准备环境
  • 安装和配置Heat编排服务组件
    • 安装软件包
      • 配置文件
        • 完成安装
        • 验证
        • 使用 Heat实现自动化部署云主机
          • 编配服务的基本概念
            • 编配服务编排
              • 编配服务heat的运维基础
              相关产品与服务
              云服务器
              云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档