- kolla-ansible
- openstack-ansible
- flume
社区的部署方案,想要直接拿来用基本是不可能的,总有很多坑要填。记录一下容器化部署的坑。
注意:
- 单机部署方式只能是调研使用,熟悉openstack,生产环境需要的规划和模型比单机复杂的多。不要把单机方式用于生产,最好连开发环境都不要上,只纯调研。
参看我的文章 linux初始化
- ens33,NAT网络里,设置的IP是:192.168.10.110,日后Horizon访问就是通过这个IP地址
- ens37,桥接模式,ip其实是dhcp分配,这个其实是让neutron的br-ex 绑定使用,虚拟机是通过这块网卡访问外网。
在机器上连接虚拟机,是通过ens33的IP进行访问,如果你通过ens37 ssh,安装过程,会导致ssh中断。
默认设置,其实两块网卡都是可以访问到互联网。也可以是其中一块网卡访问外网,对于测试来说,基本问题不大。
如果在服务器直接安装,两块网卡的IP,就算是同一个网段,也是没啥问题的。
传送门
设置 volume 挂载方式, 关于这个设置的意义,可以参看我的另一篇文章
设置 docker 镜像与加速器
vim /etc/docker/daemon.json
重启相关服务
http://tarballs.openstack.org/kolla/images/
默认docker的registry是使用5000端口,对于OpenStack来说,有端口冲突,所以改成4000
下载kolla-ansible的代码
安装kolla-ansible
复制相关文件
如果是在虚拟机里装kolla,希望可以启动再启动虚拟机,那么你需要把virt_type=qemu,默认是kvm
生成密码文件
编辑 /etc/kolla/passwords.yml
这是登录Dashboard,admin使用的密码,你可以根据自己需要进行修改。
编辑 /etc/kolla/globals.yml 文件
拉取镜像
预检查
部署
验证部署
这样就创建 /etc/kolla/admin-openrc.sh 文件
安装OpenStack client端
编辑 /usr/share/kolla-ansible/init-runonce,
网络需要根据实际情况修改
这里解析一下,192.168.2.0的网络,就是我上面ens37接的网络,这个网络是通过路由器访问互联网。配置好这个,装完虚拟机就可以直接ping通。
运行
最后你可以创建一个虚拟机来玩玩,根据最后的命令提示
这个时候,你可以登录Dashboard,给虚拟机分配一个floating ip,如果顺利,你应该就可以直接ping 通 floating ip的地址。
解决方案
进入horizon容器,修改配置
修改容器内的配置文件
将 WSGIApplicationGroup %{GLOBAL} 添加到openstack-dashboard.conf 中
修改后完整的openstack-dashboard.conf 内容如下
修改 horizon 容器内/etc/openldap/ldap.conf 文件
添加 NETWORK_TIMEOUT 2
修改后的文件内容如下
以上两个问题都是官方bug,而且存在很久了,都一直没有修复(社区东西的坑,简直不要太多,(╯‵□′)╯︵┻━┻)。
参见 bug 描述 1
参见 bug 描述 2
参考文档
- https://docs.openstack.org/kolla-ansible/latest/admin/advanced-configuration.html
- http://www.chenshake.com/kolla-installation/