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 |
教程结束。