OverCloud部署是要搭建起最终的OpenStack集群,本质上这个部署是利用OpenStack的各个组件,也就是UnderCloud,协调部署出来的,这也是TripleO的核心思想:OpenStack on OpenStack,这种做法其实。OverCloud部署用到的OpenStack组件,主要有以下几个:
- Mistral
- Swift
- Heat
- Ironic
- Nova
- Neutron
- Zaqar
OverCloud部署是要搭建起最终的OpenStack集群,本质上这个部署是利用OpenStack的各个组件,也就是UnderCloud,协调部署出来的,这也是TripleO的核心思想:OpenStack on OpenStack,这种做法其实。OverCloud部署用到的OpenStack组件,主要有以下几个:
TripleO的Heat Template是整个TripleO的核心,它定义了一系列复杂的模板,运用了Heat中一些高级的语法,抽象出了一个个嵌套的stack,来完成OverCloud中安装系统,网络配置,服务配置,高可用等一系列部署操作。本节重点解析下这些Template,讲解下TripleO中是如何使用Heat来安装部署OverCloud的,该项目的地址在tripleo-heat-templates。如果对Heat的基本语法不熟悉的,请参考Heat基础知识小节。
把物理网络配置好,镜像以及裸机信息录入系统,设置好Metadata,一切准备好之后,就可以开始部署OverCloud了,部署OverCloud非常简单,只需要执行一条命令:
1 | openstack overcloud deploy --templates /usr/share/openstack-tripleo-heat-templates/ \ |
Introspection是指能够通过程序自动的收集服务器的物理信息,比如CPU型号,网卡个数,Mac地址,磁盘大小以及个数等等,这个功能非常有用,试想一下,在部署几十台或者更多节点时,要手动收集每一台服务器的物理信息,这该是多么痛苦的一件事,而且还很容易出错,如果能将这个过程自动化,不仅可以提高效率,减少错误,还能够实现一些高级功能,比如服务器自动发现,自动注册等等。
本节介绍UnderCloud的安装原理,UnderCloud主要是依赖于OpenStack本身的功能来安装OverCloud,OverCloud就是最终要交付的OpenStack环境。UnderCloud是一个单机版的OpenStack环境,主要安装的组件有nova, glance, keystone, neutron, heat, ironic, swift,还可以选择性的安装telemetry, mistral, zaqar等组件。
instack是一个用来在当前系统中执行diskimage-builder格式的elements的工具。elements最初是在diskimage-builder中出现的,diskimage-builder是一个制作镜像的工具,因为定制镜像,需要安装各种各样的东西,elements就是它抽象出来的一个个功能的集合,这有点类似于ansible中role的概念,需要在镜像中加入什么功能,那么指定相应的element就可以了,diskimage-builder按顺序执行elements中的脚本,从而定制镜像,因此elements是可以分发的,每个人都可以写自己的elements,然后供别人使用。
os-apply-config是一个配置工具,它主要是从多个json格式的配置文件中,读取配置项,然后渲染预先定制好的模板,生成最终的配置文件,然后放置到相应的位置中去。
os-refresh-config是一个用来有序执行一组脚本的工具,它将脚本分组定义成了4个阶段:
有好几年没有写博客了,这次趁着周末有时间,花了一天的时间写了一篇。在公司做了三年的开发,之后转到运维做了将近一年的运维,然后最近又从运维转到了DevOps,终于脱离了苦逼的运维岁月,想想那些年背的锅,辛酸苦楚只能自己体会,这些年开发与运维的经历,真的是我人生宝贵的财富,也为我现在转向DevOps奠定了坚实的基础。转到DevOps之后,负责的第一个重要的事情,就是OpenStack的部署工具,说的大一点,就是要解决OpenStack的交付问题,之前公司没有经验,交付存在各种问题,尤其影响到后面的继续维护,而部署工具是交付的重要一环,因此公司经过多次争论,决定使用社区的TripleO,放弃之前自己开发的部署工具,因此我承担起了对TripleO的开发维护工作,今天介绍的就是TripleO中的一个工具:tripleo-quickstart。