跳转至

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
  1. 基础配置
# 关闭防火墙和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
  1. 安装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

  1. 安装Python虚拟环境
python3 -m venv /opt/kolla-venv
source /opt/kolla-venv/bin/activate
pip install -U pip
  1. 安装依赖
pip install 'ansible<=2.9'  
pip install "kolla-ansible<=9.3.0"

docker pull kolla/kolla-ansible:13.0.0

yum -y install sshpass
  1. 配置文件准备
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/* .

三、配置调整

  1. 生成密码
bash

kolla-genpwd
  1. 修改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"         # 按需启用组件
  1. 多节点配置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

四、部署执行

  1. 预检查
ansible -i multinode all -m ping
kolla-ansible -i multinode bootstrap-servers
kolla-ansible -i multinode prechecks
  1. 开始部署
bash

kolla-ansible -i multinode deploy
  1. 部署后操作
kolla-ansible post-deploy
. /etc/kolla/admin-openrc.sh
openstack token issue  # 验证服务

五、常见问题处理

  1. Docker镜像拉取失败
# 配置国内镜像源
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
sudo systemctl restart docker
  1. 内核参数调整
# 修改/etc/sysctl.conf
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
sudo sysctl -p
  1. 时间同步问题
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以获得更好的兼容性。