以OpenStack为代表的IaaS开源技术和以Docker为代表的PaaS/CaaS容器技术日益成熟,二者如何强强联合,一直是业界颇为关心的焦点领域。本次分享主要是和大家交流基于Docker容器运行和部署OpenStack。那么,安装OpenStack都有哪些方法呢?对于很多刚接触OpenStack的新人而言,安装无疑是一大挑战,同时也直接提高了学习OpenStack云计算的技术门槛。

openstack的安装方式

一.安装OpenStack有哪些方式

1.DevStack

在相当长一段时间内,DevStack仍将是众多开发者的首选安装工具。该方式主要是通过配置一个安装脚本,执行Shell命令来安装OpenStack的开发环境,支持CentOS、Debian等系列系统。

2.RDO

RDO是由Red Hat红帽开源的一个自动化部署OpenStack的工具,支持单节点(all-in-one)和多节点(multi-node)部署。但RDO只支持CentOS系列操作系统。需要注意的是,该项目并不属于OpenStack官方社区项目。

3.手动部署

按照社区官方提供的文档,可以使用手动方式部署单节点、多节点、HA节点环境。

4.Puppet

Puppet由Ruby语言编写。Puppet是进入OpenStack自动化部署中早期的一个项目。目前,它的活跃开发群体是Red Hat、Mirantis、UnitedStack等。Mirantis出品的Fuel部署工具,其大量的模块代码使用的便是Puppet。

5.Ansible

Ansible是一个自动化部署配置管理工具,已被Red Hat收购。它基于Python开发,集合了众多运维工具(Puppet、Chef、SaltStack等)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible一方面总结了Puppet设计上的得失,另一方面也改进了很多设计。比如基于SSH方式工作,故而不需要在被控端安装客户端。

6.SaltStack

SaltStack也是一个开源的自动化部署工具,基于Python开发,实现了批量系统配置、批量程序部署、批量运行命令等功能,和Ansible很相似。不同之处是,由于SaltStack的Master和Minion认证机制及工作方式,因此需要在被控端安装Minion客户端。

7.TripleO

TripleO项目最早由HP于2013年4月在Launchpad上注册BP,用于完成OpenStack的安装与部署。TripleO全称为“OpenStack On OpenStack”,意思为“云上云”,可以简单理解为利用OpenStack来部署OpenStack,即首先基于V2P(和P2V相反,指把虚拟机的镜像迁移到物理机上)的理念事先准备好一些OpenStack节点(计算、存储、控制节点)的镜像,然后利用已有OpenStack环境的Ironic裸机服务和软件安装部分的diskimage-builder部署裸机,最后通过Heat项目和镜像内的自动化部署工具(Puppet或Chef)在裸机上配置运行OpenStack。和其他部署工具不同的是,TripleO是利用OpenStack已有的基础设施来部署OpenStack的。

8.Fuel

Fuel是针对OpenStack的一个可以通过“界面部署”的工具,它大量采用了Python、Ruby和Java等语言。其功能涵盖了通过自动化PXE方式安装操作系统、DHCP服务、Orchestration编排服务和Puppet安装相关服务等,此外还有OpenStack关键业务健康检查和log实时查看等非常好用的功能。

9.Kolla

上面说了这么多,现在终于轮到主角上场了——kolla。Kolla是具有广阔应用前景和市场的一个自动化部署工具。相比于其他部署工具,Kolla完全革新地使用了Docker容器技术,将每一个OpenStack服务运行在不同的Docker容器中。

OpenStack安装小结

如上所述,OpenStack的安装部署方式多种多样,新手应该如何选择呢,这里,我推荐使用Rdo或手动部署方式(过程是艰难的,但能很好的加深对OpenStack的理解);对于老手而言,可以尝试使用Kolla方式,体验Docker和OpenStack融合的新方式。