Untitled
以下是使用kolla-ansible在CentOS 7.9上部署OpenStack的详细步骤,已针对CentOS 7.x的特殊环境进行适配:
一、系统准备¶
安装阿里云的base源与EPEL源 仓库和常用命令
rm -f /etc/yum.repos.d/*.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum repolist
- 基础配置
# 关闭防火墙和SELinux(生产环境需谨慎)
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo setenforce 0
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 安装必要工具
yum install -y centos-release-openstack-train
yum install -y python3 python3-devel libffi-devel gcc openssl-devel git
- 安装Docker
# 安装Docker CE
yum install -y yum-utils device-mapper-persistent-data lvm2
yum install -y docker-ce docker-ce-cli containerd.io
# 配置Docker存储驱动
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"storage-driver": "overlay2"
}
EOF
sudo systemctl enable --now docker
二、安装Kolla-Ansible¶
- 安装Python虚拟环境
python3 -m venv /opt/kolla-venv
source /opt/kolla-venv/bin/activate
pip install -U pip
- 安装依赖
pip install 'ansible<=2.9'
pip install "kolla-ansible<=9.3.0"
docker pull kolla/kolla-ansible:13.0.0
yum -y install sshpass
- 配置文件准备
mkdir -p /etc/kolla
cp -r /opt/kolla-venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
cp /opt/kolla-venv/share/kolla-ansible/ansible/inventory/* .
三、配置调整¶
- 生成密码
bash
kolla-genpwd
- 修改globals.yml
bash
vim /etc/kolla/globals.yml
关键配置项:
kolla_base_distro: "centos"
kolla_install_type: "binary"
openstack_release: "train" # 根据需求选择版本
network_interface: "eth0" # 管理网络接口
neutron_external_interface: "eth1" # 外部网络接口
enable_cinder: "yes" # 按需启用组件
- 多节点配置
在
multinode
文件中定义节点角色:
vim multinode
[control]
controller
[compute]
compute1
[network]
network1
[all:vars]
ansible_ssh_port=22
ansible_ssh_user=root
ansible_ssh_pass="123456"
host_key_checking=False #line 71
pipelining=True #line 401
forks=100 #line 20
四、部署执行¶
- 预检查
ansible -i multinode all -m ping
kolla-ansible -i multinode bootstrap-servers
kolla-ansible -i multinode prechecks
- 开始部署
bash
kolla-ansible -i multinode deploy
- 部署后操作
kolla-ansible post-deploy
. /etc/kolla/admin-openrc.sh
openstack token issue # 验证服务
五、常见问题处理¶
- Docker镜像拉取失败
# 配置国内镜像源
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
sudo systemctl restart docker
- 内核参数调整
# 修改/etc/sysctl.conf
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
sudo sysctl -p
- 时间同步问题
sudo yum install -y chrony
sudo systemctl enable --now chronyd
六、版本兼容性说明¶
- CentOS 7.9需使用OpenStack Train或Ussuri版本
- Python 3.6需限制Ansible版本为
<2.11
- 推荐使用kolla-ansible 10.x版本
建议在正式部署前使用测试环境验证配置,生产环境建议升级到CentOS Stream 8/9或AlmaLinux 8/9以获得更好的兼容性。