kolla kolla-ansible源码部署并使用kolla-ansible部署单机版openstack
kolla kolla-ansible私有化部署
参考
https://www.jianshu.com/p/5d58f6f9e2c7
https://www.cnblogs.com/jinyuanliu/p/11056775.html ( 主要参考 )
https://fuscoyu.github.io/2022/01/21/%E6%9E%84%E5%BB%BAkolla-images/ (kolla构建openstack镜像)
环境
1 | root@ceph-3:~# hostnamectl |
NOTE: 高版本如yoga需要python3.8及以上
禁用宿主机的Libvirt服务
大多数操作系统会默认启动 Libvirt,但使用Kolla来部署 OpenStack 的话,Libvirt 应该在容器中运行并管理虚拟机。所以宿主机的 Libvirt 需要被关闭,以免造成冲突。
1 | # 关门libvirtd |
NOTE
本文环境除源码安装kolla kolla-ansible外 所有环境配置可通过执行kolla.sh脚本完成参考云计算目录。
一. 部署kolla
介绍
https://fuscoyu.github.io/2022/01/21/%E6%9E%84%E5%BB%BAkolla-images/
kolla镜像目前已达到个2345个,实际上不是完全独立的2345个服务。而是针对不同的场景分别构建,达到全面覆盖的结果。同时支持binary和source两种构建方案,而且支持不同的操作系统CentOS,Ubuntu,Debian作为基础镜像,可以满足用户不同的需求。同时也支持在不修改源代码情况下,对镜像进行定制。
1.安装kolla
ubuntu( 高版本 openstack-yoga 环境可直接使用kolla.sh脚本执行 部署)
1 | # ubuntu安装依赖 |
centos( 未测试 )
安装依赖 (版本为高版本openstack时需要 python3的包即python3-pip python3-devel )
1 | # 安装依赖 |
2、 配置国内pip源
1 | # 配置pip清华源 |
3.生成虚拟化环境在虚拟化环境执行
1 | # 生成虚拟化环境 |
4.安装stable版kolla (低版本)
链接可选github:https://github.com/openstack/kolla.git
1 | # 下载源码 (根据需要下载所需版本如-b stable/yoga) |
4.高版本stable 版本 kolla yoga版 (高版本 本次使用)
1 | # 高版本yoga 下载源码 |
报错参考:https://www.jianshu.com/p/5d58f6f9e2c7
安装完成截图:
5、安装tox,生成配置文件
1 | # 生成配置文件 |
忽略此报错:
**编辑 kolla-build.conf**:控制 Kolla Image Build 的细则
1 | #-----------------配置方式1---------------------- |
5、docker安装
1 | # 安装docker |
MountFlags=shared为neutron的要求,必须配置为share,否则后面部署的时候neutron可能会有问题 此配置是为了使多个容器能够使用同一个目录。
二. 编译镜像
简单的来理解 Kolla 组件的话,它就是一个自动化构建部署 OpenStack 服务所需要的镜像的工具。其内含组织了大量的 Dockerfile,供构建镜像时使用。
1 | # 构建镜像不指定参数表示构建所有镜像 |
也可以添加参数项 -p default 对应 kolla-build.conf 的 [profiles] Sections,default 类型表示仅构建核心项目的镜像。
如果个别镜像编译失败可以重新执行以上操作,因为docker的容器缓存,重新编译会很快。
NOTE:但有些情况下,可能会把错误的配置参数 Cache 住,此时建议执行 Cleanup 操作之后再重跑:
1 | # 从系统中移除部署的容器 |
也可以查看一下可编译的镜像
1 | # 查看编译完成的镜像 |
构建镜像成功截图:
三. 编译安装kolla-ansible
1. 在虚拟化环境下操作
1 | # 生成虚拟化环境 |
2、安装ansible
ansible的版本要大于2.0
1 | # 安装ansible |
3、安装kolla-ansible
1 | # 编译安装kolla-ansible yoga版本即14.0.0 |
配置kolla-ansible
1 | # 配置kolla-ansible |
源码安装完成截图:
教程到此即可结束 下方保留是为了文章的完整性 下方构建请移步云计算目录。
四. 利用源码安装的kolla-ansible构建all-in-one版openstack
1.修改文件
编辑 globals.yml文件
1 | kolla_install_type: "source" |
实际配置可选
1 | kolla_base_distro: "ubuntu" |
2.设置主机名安装依赖
1 | # 设置主机名 |
3.使用kolla-ansible安装依赖
1 | # # 这一步为了让当前目录有ansible.cfg |
4、修改 Hypervisor Type 此处即是利用了kolla-ansible的合并配置文件属性
因为操作环境是 VMware 的虚拟机,所以存在嵌套虚拟化不支持 KVM 的问题,如果你希望启动 OpenStack 实例,那就需要启用 QEMU(Default KVM)。
1 | mkdir -p /etc/kolla/config/nova |
检查配置
1 | kolla-ansible -i ./all-in-one prechecks |
开始部署
1 | kolla-ansible -i ./all-in-one deploy |
生成密钥
1 | # 生成密钥文件 |
部署完成效果
五. 扩展
报错
在用Dockerfile制作镜像的时候总是出现如下错误
1 | HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. |
原因分析:
在下载python库的时候,由于国内网络原因,python包的下载速度非常慢,查看pip 文档,只要在 pip的时候控制超时即可, 具体参数为--default-timeout=100,后面的时间可以自己指定。
可以在kolla-build中指定一下:
1 | [root@centos kolla]# pwd |
教程结束。


























