Kolla ansible 部署 OpenStack Zed
系统要求
单机部署最低配置:
- 2张网卡
- 8G内存
- 40G硬盘空间
主机系统:
- CentOS Stream 9
- Debian Bullseye (11)
- openEuler 22.03 LTS
- Rocky Linux 9
- Ubuntu Jammy (22.04)
官方不再支持CentOS 7作为主机系统,我这里使用的是Rocky Linux 9.1(最小化安装)
1. 安装依赖
1.1 安装基础依赖
dnf install git python3-devel libffi-devel gcc openssl-devel python3-libselinux
1.2 安装Ansible额外需要的包
官方文档中没有说明,实际部署过程中,没有这两个包会无法使用pip安装的ansible
dnf install python3-resolvelib sshpass
1.3 设置Python-venv虚拟环境
为了防止与系统的python环境冲突,这里使用虚拟环境安装ansible与kolla-ansible
/path/to/venv是虚拟环境的目录,可以自己指定
创建虚拟环境
python3 -m venv /path/to/venv
进入虚拟环境
source /path/to/venv/bin/activate
在虚拟环境中输入
deactivate命令,即可退出虚拟环境
更换pip国内源,更新pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install -U pip
1.4 安装Ansible
Kolla-ansible需要ansible 5版本,这里需要指定版本安装
pip install 'ansible>=4,<6'
2. 安装Kolla-ansible
2.1 安装本体
pip install git+https://opendev.org/openstack/kolla-ansible@stable/zed
2.2 获取Kolla配置文件
创建配置文件夹
mkdir /etc/kolla
复制global.yml与password.yml到配置文件夹
cp -r /path/to/venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
2.3 获取Ansible清单文件
复制all-in-one与multinode两个清单文件,分别对应了单机部署与多节点部署
cp /path/to/venv/share/kolla-ansible/ansible/inventory/* .
3. 安装Ansible Galaxy依赖
kolla-ansible install-deps
4. 配置Ansible
单机部署时,可以跳过这一步
编辑/etc/ansible/ansible.cfg,如果没有则需要先创建,将下面的内容添加到配置文件中
[defaults]
host_key_checking=False
pipelining=True
forks=100
5. 准备初始化配置
5.1 修改hosts
单机部署时,可以跳过这一步
在部署机的hosts中添加需要部署的主机的主机名,后续会自动同步到所有节点
编辑/etc/hosts文件,我这里准备部署1台控制节点与2台计算节点
10.0.8.121 kolla-control
10.0.8.122 kolla-compute1
10.0.8.123 kolla-compute2
5.2 准备清单文件
- 单机部署时,使用
all-in-one清单文件 - 多节点部署时,使用
multinode清单文件
单机部署时,可以不用修改
all-in-one清单文件
下面是我的multinode清单文件的开头部分,供参考
[control]
# 指定root密码、管理网卡
kolla-control ansible_ssh_pass="***" network_interface="ens192"
[network:children]
# 可在组名后添加:children来对组进行嵌套
compute
[compute]
# 指定root密码、管理网卡、外部网卡
kolla-compute1 ansible_ssh_pass="***" network_interface="ens192" neutron_external_interface="ens224"
kolla-compute2 ansible_ssh_pass="***" network_interface="ens192" neutron_external_interface="ens224"
[monitoring:children]
control
详细的配置规则见 Ansible文档
配置完成后,使用下面的命令测试Ansible的连通性
ansible -i multinode all -m ping
5.3 生成密码
kolla-genpwd
密码存储在
/etc/kolla/passwords.yml中
5.4 配置global.yml
镜像选择
Kolla可以选择多种镜像版本:
- CentOS Stream (centos)
- Debian (debian)
- Rocky (rocky)
- Ubuntu (ubuntu)
官方推荐新安装的使用rocky或ubuntu,这里使用和主机相同的rocky发行版
kolla_base_distro: "rocky"
镜像仓库
国内可能访问quay.io比较慢,可以指定国内的quay.io源
docker_registry: "quay.nju.edu.cn"
网络
管理网络的网卡,也用于主机之间的通信
network_interface: "eth0"
连接外部网络的网卡,需要一个开启的,没有配置IP的网卡
neutron_external_interface: "eth1"
用于管理的浮动IP,由keepalived提供高可用性,必须是管理网络中没有被使用的地址
kolla_internal_vip_address: "10.0.8.250"
global.yml中所有的选项,都可以在清单文件中为每个主机单独配置。上面的multinode文件中,指定了每台主机的管理网卡与外部网卡。
6. 部署
我这里采用多节点部署,使用的是multinode清单文件,单机部署请使用all-in-one清单文件
引导服务器
kolla-ansible -i ./multinode bootstrap-servers
部署前检查
kolla-ansible -i ./multinode prechecks
开始部署
kolla-ansible -i ./multinode deploy
7. 使用OpenStack
7.1 命令行(OpenStack CLI)
安装CLI客户端
pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/zed
生成openrc文件
kolla-ansible post-deploy
使用openrc文件
. /etc/kolla/admin-openrc.sh
接下来就可以使用OpenStack CLI了
7.2 网页(Horizon)
浏览器中访问kolla_internal_vip_address,输入账号密码即可
账号密码可在openrc文件中查看
更多推荐

所有评论(0)