上一期我们讲了nova的服务启动,有关协程都创建好了,现在就是看如何让他们开始工作了。我们先部署一套os服务然后看看他们的具体工作流程。
安装os,我们得选一个版本来安装,我们就用一个比较新的N版本来探讨部署方式。
一种是rdo的部署方式,一种是devstack的部署方式,官方还提供了ansible的方式,以及最原始的一步步安装的方式,我们为了快速熟悉原理,先利用rdo的方式来看一下如何安装。
AllInOne是Openstack最基本的模式,即将所有必要组件都安装到一台硬件节点上。这种模式不包含块存储和对象存储模块,本文会搭建一个AllInOne的OpenStack。
AllInOne模式的os部署安装
出于研究的目的,我们会将所有安装在虚拟机上测试,然而我们要知道的是,真实的openstack是跑在硬件之上的。虚拟机准备好之后最好打一个快照以便在出错的情况下及时恢复环境,os的部署过程很容易出现很头疼的问题。
RDO是由Red Hat红帽开源的一个自动化部署OpenStack的工具,支持单节点(all-in-one)和多节点(multi-node)部署。但RDO只支持CentOS系列操作系统。需要注意的是,该项目并不属于OpenStack官方社区项目。
OpenStack all-in-one模式会将OpenStack的控制节点、计算节点和网络节点同时安装在一个机器上。这种模式可以快速配置,非常方便用于测试和开发。
接下来我们使用RDO repository来部署os,我们建议的vm配置如下:
平台:Centos7
内存:>=8GB
硬盘:100GB
cpu核数:>=8
虚拟机呢就在滴滴云上申请一个就可以。
开始安装:
先安装packstack:
安装rdo源rpm包
yum install https://www.rdoproject.org/repos/rdo-release.rpm
如图:
说明:这个该repo工具默认安装最新的train版本,而且os社区已不再针对A-N的版本支持了,O版本以后的还在支持。
接着安装工具:
yum install openstack-packstack
可能会遇到git问题,卸载了重新安装指定的git版本即可。
然后os:
# packstack –allinone
发现报错:
这个问题可以在packsack代码里加入如下:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
从打印信息看,应该是leatherman rpm包版本问题,已经安装版本是1.10.0-1,但是facter需要1.3.0,因此需要降级:# yum downgrade leatherman
问题解决。
继续安装完成如下:
看输出已经有了访问的地址了,但是还有错误,其实这个不影响使用了,先不用管她。
我们再家目录下执行:source keystonerc_admin
然后我们运行nova命令,如下: