OpenStack 因为架构复杂,配置较多,一向以安装部署过程困难闻名。虽然 OpenStack 社区前后涌现出了很多的自动化部署工具,但是对于普通用户,特别是新人来说,上手仍然有难度。
使用本文介绍的基于 Kolla-Ansible 构建的操作系统镜像,用户只需执行极少命令即可完成环境的部署。
安装 OpenStack 可能有多麻烦 选择项太多OpenStack 诞生之时,在运维自动化领域已经存在多个配置工具,不同的团队有不同的技术偏好,因此他们纷纷选择不同的工具来实现 OpenStack 的自动化安装:
Ansible
Puppet
Chef
Salt
OpenStack 可以部署在多个主流的 Linux 系统中:
Ubuntu
RHEL/CentOS
SUSE/openSUSE
OpenStack 架构也很灵活,除了核心模块外,还有很多可选模块;
Swift
Cinder
Neutron
Heat
...
核心模块本身也有多种可选配置,比如说网络项目 Neutron,可以选择:
Linux Bridge
OpenvSwitch
OpenStack 是一个基于 Python 的开源项目,意味着除了从软件包安装外,还会有使用 pip install 从 pypi 安装 Python 模块,以及从 git 源码仓库下载源码安装的需求:
rpm/deb 源
pypi 源
git 源
开源社区的工具一般比较中立,各种场景都要照顾到,也不会特意去强调哪种方式更好,所以对于新人来说,如何选择容易上手的部署方式是一个难题。
OpenStack 针对开发快速上手有一个专门的项目 devstack,但是由于众所周知的国情,会遇到下面的网络问题。
网络不给力开源的部署工具一般都是基于软件包仓库或者是代码仓库,需要在线下载软件包或源码安装。这些仓库基本都是国外的网站。这就又涉及到几个问题:
一个是下载速度的问题,虽然近些年国内出现了很多镜像站,但是配置软件安装源在不同的操作系统中是不同的操作命令,不是所有人都能熟练完成。
也不是所有的自动化安装工具的作者(绝大部分是老外)会意识到网络会是个问题,安装文档里不会去特意去提安装源的设置,甚至不会把它们作为可配参数提取出来。
再者,随着版本的升级和时间推移,包括社区的变动,很多软件安装源的 URL 会发生变更,并不是长期保证不变的。也就是说,基于网络安装的文档是有时效性的,可能过1、2年就不具备可操作性了。
此外,即便网络状况很好,安装一切顺利,如果要反复多次搭建,每次都需要下载安装也会比较耗时间。
版本变化快OpenStack 的版本发行计划是每半年 release 一个版本。听上去没那么频繁,实际上对于这种超大型的项目来说,可能你当前版本还没完全吃透呢,又来新版本了。所以,目前网上很多的安装工具和安装教程也都过时了。
这里给大家提供的是次新的 Stein 版本,可以体验更多的新特性。
安装 OpenStack 可以有多简单下面给大家介绍的是基于 Kolla-Ansible 的容器化部署方式。
常规的安装文档中,Kolla-Ansible 本身也是需要安装部署的,它用到的 docker 容器的镜像也需要从网络上拉取,为了进一步简化操作,这里将 Kolla-Ansible 工具和镜像包和 CentOS 系统镜像一起打包,重新构建生成一个可引导的 .iso 镜像。真正做到了一键启动,离线安装,装完即用。
关于 Kolla 的一些细节以后会逐渐展开介绍,本文暂不涉及。
准备一台机器大部分人可能没有空闲的机器专门来安装 Linux 系统,这里我们使用虚拟机也可以完成安装。
选择一个适合你的系统的虚拟机管理软件即可:
VirtualBox (推荐)
VMWare
Hyper-V
其它
下载 .iso 镜像文件微信搜索并关注公众号 DavyCloud,获取下载链接
创建虚机先配置两个网络:
两个 host-only 的网络,
其中一个网络的地址段设置为 10.10.10.1/24
新建一个虚拟机,满足以下条件:
内存 8GB
启动盘选择 davycloud-openstack-stein.iso
磁盘空间 >= 40GB
两个网卡分别配置两个 host-only 的网络,
第一块网卡的地址段对应到 10.10.10.1/24 那一个
修改启动选项进入引导菜单时,有两个选项:
安装 Deploy 节点
安装 Worker 节点 (默认)
使用方向键移动光标,选择第 1 个,按下回车键开始安装系统。
扫码关注公众号,可以获取镜像下载链接
为什么要把默认选项放在第 2 个?
因为部署节点只需要安装一个即可,而工作节点可能会有很多个。
系统进入自动安装流程,整个过程无需任何交互。系统安装完毕后会弹出光盘并自动重启。
第一次启动过程会比较耗时,请耐心等待。
配置修改如果虚机的网络地址段按要求配置,对 OpenStack 的模块也没有什么特别要求,这里可以不做任何改动,直接跳到下一步骤即可。
为了不让本文变得冗长,这里也不具体介绍修改配置的方法,仅简单说明相关情况。
All-In-One 安装场景默认安装 OpenStack 核心模块和公共组件,包括:
MySQL
RabbitMQ
Memcached
Keystone
Glance
Neutron
Nova
Heat