一、编配服务的基本概念 

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

Heat 服务包含以下重要的组件

1.Heat-api组件实现OpenStack天然支持的 REST API。该组件通过把 API 请求经由 AMQP 传送给 Heat engine 来处理 API 请求。

2.Heat-api-cfn组件提供兼容 AWS CloudFormation的 API,同时也会把 API 请求通过 AMQP 转发给 heat engine。

3.Heat-engine 组件提供 Heat 最主要的协作功能。

一个典型的 HOT 模板由下列元素构成:

模板版本: 必填字段,指定对应的模板版本,Heat 会根据版本进行检验。

资源列表: 必填,指生成的 Stack 所包含的各种资源。可以定义资源间的依赖关系,比如说生成 Port,然后再用 port 来生成 VM。

参数列表: 选填,指输入参数列表

输出列表: 选填,指生成的 Stack 暴露出来的信息,可以用来给用户使用,也可以用来作为输入提供给其它的 Stack。

 Heat Engine 的作用分为三层:

第一层处理 Heat 层面的请求,就是根据模板和输入参数来创建 Stack,这里的 Stack 是由各种资源组合而成。

第二层解析 Stack 里各种资源的依赖关系,Stack 和嵌套 Stack 的关系。

第三层根据解析出来的关系,依次调用各种服务客户端来创建各种资源。

heat模板 

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的运维基础

使用栈模板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

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

#基于xiandian,首先都需要生效环境变量,获取令牌(source /etc/keystone/admin-openrc.sh)
[root@xiandian ~]# #第一步:获取基础资源信息(如果没有,则需要重新创建),包括认证、镜像、网络、计算、存储等资源,同时还需要设置密钥对和安全组策略
[root@xiandian ~]# #认证服务keystone
[root@xiandian ~]# #需要给cookbook部门的manager启动一台云主机
[root@xiandian ~]# #查看当前的部门信息,即租户列表
[root@xiandian ~]#openstack project list
[root@xiandian ~]# #创建新部门
[root@xiandian ~]#openstack project create cookbook --domain xiandian
[root@xiandian ~]#openstack project list
[root@xiandian ~]#openstack role list
[root@xiandian ~]# #创建新角色
[root@xiandian ~]#openstack role create manager
[root@xiandian ~]#openstack role list
[root@xiandian ~]# #创建新用户cook001
[root@xiandian ~]#openstack user create cook001 --password 000000 --domain xiandian --email cook001@xiandian.com
[root@xiandian ~]#openstack user list
[root@xiandian ~]# #为新用户分配部门,安排角色,就是把三者绑定
[root@xiandian ~]# openstack role add manager --user cook001 --project cookbook
[root@xiandian ~]# #镜像服务glance
[root@xiandian ~]#glance image-list
[root@xiandian ~]# #获取源文件
[root@xiandian ~]#wget ftp://172.16.102.20/cirros-0.3.4-x86_64-disk.img
[root@xiandian ~]# #使用当前源文件创建镜像
[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 ~]# #设置镜像的最小启动硬盘大小和内存大小
[root@xiandian ~]#glance image-update --min-disk=20 --min-ram=2048 镜像id号
[root@xiandian ~]# #网络服务
[root@xiandian ~]# # 查看当前可用网络
[root@xiandian ~]#neutron net-list
[root@xiandian ~]# #创建子网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
[root@xiandian ~]# #计算服务(确定云主机的主机类型flavor)
[root@xiandian ~]#nova flavor-list
[root@xiandian ~]# #创建自定义主机类型
[root@xiandian ~]#nova flavor-create cook.small 6 4096 60 4
[root@xiandian ~]#nova flavor-list
[root@xiandian ~]# #生成密钥对keypair
[root@xiandian ~]#nova keypair-list
[root@xiandian ~]#nova keypair-add mykey > mykey
[root@xiandian ~]#nova keypair-list
[root@xiandian ~]# #设置安全组secgroup策略
[root@xiandian ~]#nova secgroup-list
[root@xiandian ~]# #自定义安全组cookbook
[root@xiandian ~]#nova secgroup-create cookbook-rules 'create a secgroup for cookbook'
[root@xiandian ~]# #为安全组添加规则
[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
[root@xiandian ~]# #第二步:编写编配脚本文件test50.yml
[root@xiandian ~]#vi test50.yml    #见图一
[root@xiandian ~]#chmod -X test50.yml
[root@xiandian ~]# #第三步:使用test50.yml这个文件创建栈资源,启动云主机
[root@xiandian ~]#heat stack-create test50-1 -f test50.yml
[root@xiandian ~]# #查看栈列表
[root@xiandian ~]#heat stack-list
[root@xiandian ~]#nova list
[root@xiandian ~]#heat stack-create test50-2 -f test50.yml
[root@xiandian ~]# #编写完整地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

图一:

图二:

不谙世事 步履阑珊 

OpenStack高级控制服务之使用编配服务(Heat)实现自动化部署云主机相关推荐

  1. 微服务轮子项目(45) -Jenkins自动化部署

    文章目录 1. 安装部署 1.1 环境准备 1.2 启动与访问 1.3 插件安装 1.4 全局工具配置 1.5 安全配置 1.6 踩坑 2. ssh免密登录 2.1 获取本地客户端机器的公钥 2.2 ...

  2. openstack云计算平台 3 (Dashboard搭建、创建云主机平台)

    文章目录 一.组件5-Dashboard 1.检查云主机状态 2.安装和配置 3.验证操作(创建云主机) 二.控制节点配置网络选项-私有网络 三.计算节点配置网络选项-私有网络 1.创建云主机 一.组 ...

  3. openstack与ceph环境恢复云主机

    有一台Windows系统的云主机出现故障,系统盘坏掉,无法启动,也不能在云环境里修复系统,但是数据比较重要,需要恢复云主机里的数据.云主机有一块系统盘,一款外挂盘. 系统盘: 外挂盘: 以下操作是在生 ...

  4. openstack第四章:neutron— 网络服务

    第四篇neutron- 网络服务 一.neutron 介绍:   Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是 ...

  5. 云计算之openstack(N版)neutron网络服务最佳实践

    2.6网络服务 2.6.1neutron的概况 网络服务提供网络,子网以及路由这些对象的抽象概念.每个抽象概念都有自己的功能,可以模拟对应的物理设备:网络包括子网,路由在不同的子网和网络之间进行路由转 ...

  6. (二)浅谈OpenStack T版服务组件--Keyston身份服务(#^.^#)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.Keyston身份服务简介 1.主要功能 2.管理对象 3.keystone认证过程 二.Keystone身份服务组件安 ...

  7. (四)浅谈OpenStack T版服务组件--Nova计算服务(#^.^#)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.Nova简介 1.Nova的概念 2.Nova系统架构 二.Nova组件详解 1.Nova--API 2.Nova--S ...

  8. openstack Rocky版本安装和配置swift服务教程

    参考openstack官网教程配置了swift服务,详细配置如下.侵权删除.建议在配置的时候注意看清楚IP地址,密码,和其他编码的配置,不要全盘复制粘贴! 说明: (1)本次配置的openstack版 ...

  9. 补的第九节:9 安装Heat编配服务

    9.1通过脚本安装heat服务 9.2-9.8编配服务的操作命令已经编写成shell脚本,通过脚本进行一键安装.如下: #Controller节点 执行脚本iaas-install-heat.sh进行 ...

最新文章

  1. cs架构使用webservice靠谱嘛_使用点评eimele亦餐哪些味道的好吃?口碑靠谱吗?急想知道!...
  2. JAVA手写ArrayList以及LinkedList
  3. mysql applier_MySQL推出Applier,可实时复制数据到Hadoop-阿里云开发者社区
  4. UcSTAR统一通信平台
  5. oracle 10g dg参数配置,Windows平台之Oracle10g DG配置
  6. Linux安装Nginx1.7.4、php5.5.15和配置
  7. 机器学习之聚类——模糊聚类FCM
  8. 用Java算出百钱买百鸡
  9. Draco使用笔记(1)——图形解压缩
  10. 以太网协议------802.1q,802.1d,802.1x
  11. PHPstudy V8 安装PHPAdmin
  12. Ubuntu中LightDM是什么(转)
  13. java word转pdf在linux系统上可行
  14. Google Open Images Dataset V4
  15. nvm: node版本管理器[使用教程]
  16. 矛与盾---走出软件作坊:三五个人十来条枪 如何成为开发正规军(三十五)
  17. Python变量,常量,基础数据类型,input用户交互
  18. WampServer的下载方法
  19. Unity NGUI 插件 简介
  20. C#调用CodeSoft Label档打印Label及预览Demo

热门文章

  1. 什么情况下你会毫不犹豫地辞职?
  2. Lambda方法引用
  3. Vue2.0 —— 由设计模式切入,实现响应式原理
  4. TensorFlow 决策森林来啦!
  5. pe装机时看不到电脑的硬盘
  6. Python根据地名获取经纬度
  7. 使用 Mypy 检查 30 万行 Python 代码,总结出 3 大痛点与 6 个技巧!
  8. AutoJs学习-截屏器
  9. 09_Filter过滤器(访问所有资源前,首先执行自定义过滤器类的doFilter方法)_Listener监听器(监听域对象的改变)
  10. CentOS中利用iso介质来安装软件