1. 前言
《Kolla安装OpenStack多节点》一文中,使用kolla安装了三个节点的openstack。
因为实验需要,现在需要再添加一个计算节点。那么问题来了,怎样在不破坏现有环境的基础上,添加一个新的计算节点呢?本文就来研究一下。
2. 新节点配置
2.1. 网络设置
在新添加的计算节点上,执行以下操作:
1、切换到root用户sudo -i
2、vim /etc/network/interfaces
,设置网卡为:
1 | # This file describes the network interfaces available on your system |
3、启用网卡ifup eth2
4、修改/etc/hosts,添加:
1 | 192.168.56.110 controller |
2.2. python
安装pythonapt -y install python-simplejson
不安装的话,在使用ansible的时候会报错/bin/sh: 1: /usr/bin/python: not found。
2.3. 安装docker
1、安装dockerapt -y install docker.io
2、为docker和kolla创建配置文件
1 | mkdir -p /etc/systemd/system/docker.service.d |
修改为:
1 | [Service] |
3、重启docker
1 | systemctl daemon-reload |
4、查看docker信息docker info
2.4. 密钥登录
1、在控制节点将公钥写入新的计算节点
1 | ssh-copy-id -i .ssh/id_rsa.pub -p 22 voidking@192.168.56.11 |
2、在新的计算节点把voidking用户添加进sudo免密,方便以后的操作sudo vim /etc/sudoers
,添加
1 | voidking ALL = NOPASSWD: ALL |
3. 控制节点配置
1、配置multinode文件vim multinode
,如下修改:
1 | # line 3, change |
2、测试连通ansible -i multinode -m ping all
3、拷贝kolla.tar到新计算节点scp kolla.tar voidking@192.168.56.113:~
4、在新计算节点导入所有imagesdocker load -i kolla.tar
5、在控制节点执行初始化kolla-ansible -i ./multinode bootstrap-servers
报错如图:
参考《Ubuntu16使用Kolla安装OpenStack》解决。
6、预检查kolla-ansible -i ./multinode prechecks
7、部署kolla-ansible -i ./multinode deploy
报错,创建数据库失败。解决办法:取消multinode文件中control节点的注释,然后重新执行部署。kolla-ansible -i ./multinode deploy --limit @/usr/local/share/kolla-ansible/ansible/site.retry
实际上,site.retry文件里面放的是一个单纯的IP地址192.168.56.113
。
如上图,等待几分钟后,出现部署成功的提示。
4. 测试使用
新的问题来了,上面的操作显示新的计算节点部署成功,那么,安装过程中有没有对原系统产生影响?我们来测试查看一下。
1、使admin环境生效source /etc/kolla/admin-openrc.sh
2、查看计算服务openstack compute service list
如上图,此时已经有了两个计算节点。
3、查看以前的实例openstack server list
之前的实例还在,没有受到影响,nice。
5. 后记
上面的步骤,完美添加了一个新的计算节点,前提是《Kolla安装OpenStack多节点》一文中的globals.yml等配置文件保持不变。
我很好奇,如果主机清单multinode中的110、111、112三个节点没有添加注释,会不会对它们进行重新安装。于是,我把注释取消,执行了一次kolla-ansible -i ./multinode deploy
。实践证明,没啥影响。那么,如果从bootstrap-servers开始执行呢?依次执行bootstrap-servers、prechecks、deploy三条命令会不会重装?于是,先执行bootstrap-servers。然后,卡在了时间同步,卡了一个钟头,遂Ctrl+C放弃。算了算了,不探究了,如无必要勿增实体,还是把精力放在更重要的事情上。