openstack是一个迭代很快的一款软件,它的每一个版本配置的方法和策略都不尽相同,建议查看官方文档来学习。我的版本是18年8月11号的pike版本。
官方安装文档
1 openstack部署情况说明
openstack中有两类节点,一类是controller节点,这个节点将会承担各种重量级的服务,是用来管理其他节点的服务。另一类节点是普通节点,这些普通节点的资源将来会被池化,然后供controller节点来管理。其中controller是提供对外服务的入口。
上图是openstack官网给的截图,启动OpenStack的核心节点有两个,Controller节点和Compute节点,然后还可以外挂一个节点做持久化存储。
2 部署实例
2.1 网络规划
此案例是我在实验室进行试验的案例,大家按照上图的性能就可以跑起来Openstack集群
provide ip | mangment ip | 角色 | 性能参数 |
---|---|---|---|
10.1.18.28 | 172.18.1.29 | Controller | 32核、1T硬盘、64G内存 |
10.1.18.81 | 172.18.1.81 | compute NOde1 | 32核、300G硬盘、64G内存 |
两个节点都要设置两张网卡,一张负责对外通信,叫做provider interface,还有一张负责内部的节点之间的通信交流叫做mangment interface。
主要的安装步骤按照官网教程来安装即可,下面来总结一下,我在安装过程中遇到的一些坑。
安装的时候主要安装四个服务,一个面板即可。其中keystone、glance、neutron均安装在controller节点上,这些服务也可以单独安装一个节点。nova服务单独安装到compute节点上。
2.2 软件安装前准备
1.同步时间服务
设置controller节点
[root@29-controller ~]# yum -y install chrony
#安装时间同步服务
[root@29-controller ~]# vim /etc/chrony.conf
#修改配置文件
在这里设定一个局域网网段,允许局域网内的主机通过29(ip地址末位是29的服务器)这台服务器同步时间。
[root@29-controller ~]# systemctl enable chronyd
[root@29-controller ~]# systemctl start chronyd
#开机自启动并开始服务。
设置node节点(81和131节点)
[root@29-controller ~]# yum -y install chrony
#安装时间同步服务
[root@29-controller ~]# vim /etc/chrony.conf
#修改配置文件
修改将默认的同步修改为与controller节点同步。
开始并设置开机自启动服务。
2.配置yum仓库
三个节点都配置好相关的yum仓库,由于openstack的安装源依赖于epel源,因此需要配好epel仓库。
[root@29-controller /etc/yum.repos.d]# cat Cent-Base-Openstack-Pike.repo
[pike]
name=pike
baseurl=https://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-pike/
enabled=1
gpgcheck=0
3.安装数据库服务
[root@29-controller ~]# yum install mariadb mariadb-server -y
4.提前配置好域名解析
编辑/etc/hosts
文件,将主机名与ip地址进行一一映射。这一步很重要,后面的若干配置当中,都是直接使用主机名进行配置的。
...
172.18.1.29 controller
172.18.1.81 node1
...
上面的ip需要你根据自己的实际情况调整为自己的ip地址。
剩下的内容根据官方文档一步步来就好
2.3 总结坑点
1.时间同步问题,所有节点应与controller节点同步,使用chrony服务来实现。
2.安装yum -y install python-openstackclient
,这个包里面提供了使用命令行方式来管理openstack的包,如果没有这个命令行,那么所有的操作将没有办法进行。
3.官方文档中,所有配置文档中填写url的时候,不会写ip地址,一般都会用controller来代替,这就要求我们在各台主机上都提前配置好/etc/hosts
文件,在文件里面将controller解析为正在使用的ip地址,以我为例,就是要将controller解析为172.18.1.29以便将来能够符合官方文档的配置。
4.官方文档中,有很多关于密码的内容,下面都有提示,提示大家去按照自己的需求来改密码,建议为了方便起见,用户名是什么,密码就是什么。这样初次练习的时候,不会因为忘记密码而尴尬。或者有所有的用户都统一使用一个密码。
5.rabbitmq安装问题,在安装nova节点的时候,有一个步骤会直接用到rabbitmq服务,而在官方文档的配置过程中,并没有说明应该如何去配置rabbitmq。
因此,你需要安装并未rabbitmq添加openstack用户。
# yum -y install rabbitmq-server.noarch
安装消息队列
# systemctl start rabbitmq-server.service
# rabbitmqctl add_user openstack openstack
设置openstack用户
# rabbitmqctl set_user_tags openstack administrator
设置用户为管理员
6.在使用yum安装openstack的过程中很有可能会遇到报错,如果遇到报错了,要看清楚是否是因为包的依赖问题没解决好。如果是因为包的依赖问题没解决好。
比如遇到下面的错误代码
Requires: qemu-kvm-rhev >= 2.9.0
这个错误代码,其实是告诉你需要手动装一个依赖包,把qemu-kvm的版本提上去。那么如何解决这个问题呢。
去阿里镜像上搜索这个软件包,找到这个包的安装路径。
找到2.9以上的并且服务centos版本的系统,然后点击进去,查看该软件包的路径。
根据这个路径,可以在初始界面上一步步进入到该rpm包所在的目录中。
如下所示
最终可以找到这个软件包所在的目录(一定要含有repodata文件),然后根据这个目录
自定义一个repo文件,如下。
# vim /etc/yum.repos.d/qemu.repo
[qemu]
name=CentOS-$releasever qemu
baseurl =https://mirrors.aliyun.com/centos/7.5.1804/virt/x86_64/kvm-common/
gpgcheck =0
7.安装途中报错,如下:
8381 ERROR nova NotAllowed: Connection.open: (530) NOT_ALLOWED
- access to vhost '/' refused for user 'openstack'
大概的意思就是openstack作为rabbitmq的用户却没有足够的权限问题。
解决办法,给予openstack相关权限即可。
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"