OpenStack 全套搭建部署指南(基于 Kolla-Ansible)

一、环境准备

1. 硬件要求

  • 控制节点:至少 4 核 CPU,8GB 内存,100GB 磁盘(推荐 SSD)。

  • 计算节点:根据虚拟机需求调整,建议 8 核 CPU,16GB 内存,200GB+ 磁盘。

  • 网络节点(可选):若需独立网络服务,分配 2 核 CPU,4GB 内存。

2. 操作系统

  • 推荐系统:Ubuntu 22.04 LTS 或 CentOS 9 Stream。

  • 所有节点需满足以下条件

    复制代码
    # 关闭 SELinux(CentOS)  
    sudo setenforce 0  
    sudo sed -i 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config # 关闭防火墙(测试环境) sudo systemctl stop firewalld && sudo systemctl disable firewalld # CentOS sudo ufw disable # Ubuntu # 配置时间同步(NTP/Chrony) sudo timedatectl set-ntp true 

3. 主机名与网络规划

  • 主机名 :确保所有节点的主机名可解析(如 controller, compute1)。

  • 网络规划

    • 管理网络(Management Network):10.0.0.0/24

    • 业务网络(Tunnel/Data Network):10.0.1.0/24

    • 外部网络(External Network):与物理网络桥接(如 192.168.1.0/24)。


二、安装依赖与工具

1. 安装 Python 和 Ansible

复制代码
# Ubuntu  
sudo apt update  
sudo apt install -y python3-dev python3-pip git sudo pip3 install -U pip ansible # CentOS sudo dnf install -y python3-devel git sudo pip3 install -U pip ansible 

2. 安装 Docker 和依赖

复制代码
# Ubuntu  
sudo apt install -y docker.io  
sudo systemctl enable --now docker # CentOS sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install -y docker-ce sudo systemctl enable --now docker # 配置 Docker 镜像加速(可选) sudo tee /etc/docker/daemon.json <<EOF { "registry-mirrors": ["https://<your-mirror>.mirror.aliyuncs.com"] } EOF sudo systemctl restart docker 

3. 安装 Kolla-Ansible

复制代码
sudo pip3 install git+https://opendev.org/openstack/kolla-ansible@stable/zed  
sudo mkdir -p /etc/kolla  
sudo cp -r /usr/local/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/ sudo cp /usr/local/share/kolla-ansible/ansible/inventory/* /etc/kolla/ 

三、配置 Kolla-Ansible

1. 生成全局配置文件

复制代码
# 生成密码文件  
sudo kolla-ansible genpwd  

# 编辑全局配置(/etc/kolla/globals.yml)  
sudo vim /etc/kolla/globals.yml  

# 关键配置项 kolla_base_distro: "centos" # 或 "ubuntu" kolla_internal_vip_address: "10.0.0.100" # 控制节点 VIP network_interface: "eth0" # 管理网络接口 neutron_external_interface: "eth1" # 外部网络接口 enable_cinder: "yes" enable_cinder_backend: "lvm" glance_backend: "file" 

2. 配置 Inventory 文件

复制代码
sudo vim /etc/kolla/inventory/multinode  

# 示例配置  
[control]  
controller  

[network] controller [compute] compute1 [monitoring] controller [storage] controller 

四、部署 OpenStack

1. 执行预检查

复制代码
sudo kolla-ansible -i /etc/kolla/inventory/multinode bootstrap-servers  
sudo kolla-ansible -i /etc/kolla/inventory/multinode prechecks  

2. 开始部署

复制代码
sudo kolla-ansible -i /etc/kolla/inventory/multinode deploy  

3. 生成管理员凭据

复制代码
sudo kolla-ansible post-deploy  
source /etc/kolla/admin-openrc.sh  # 加载环境变量  

五、验证与初始化

1. 验证服务状态

复制代码
# 检查容器运行状态  
sudo docker ps  

# 检查 OpenStack 服务  
openstack compute service list openstack network agent list 

2. 创建初始资源

复制代码
# 创建外部网络  
openstack network create --external --provider-physical-network physnet1 --provider-network-type flat public  
openstack subnet create --network public --subnet-range 192.168.1.0/24 --gateway 192.168.1.1 --allocation-pool start=192.168.1.100,end=192.168.1.200 public-subnet # 创建测试虚拟机 wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img openstack image create --file jammy-server-cloudimg-amd64.img --disk-format qcow2 --container-format bare ubuntu-jammy openstack flavor create --ram 2048 --disk 20 --vcpus 2 m1.small openstack server create --image ubuntu-jammy --flavor m1.small --network public test-vm 

六、后续维护与扩展

1. 添加计算节点

复制代码
# 在新节点安装依赖并加入 Inventory  
sudo vim /etc/kolla/inventory/multinode  
[compute]  
compute1  
compute2  

# 重新部署 sudo kolla-ansible -i /etc/kolla/inventory/multinode deploy 

2. 升级 OpenStack

复制代码
# 更新 Kolla-Ansible  
sudo pip3 install -U kolla-ansible  

# 执行升级  
sudo kolla-ansible -i /etc/kolla/inventory/multinode upgrade 

3. 备份与恢复

复制代码
# 备份数据库  
sudo docker exec -it mariadb mysqldump -uroot -p$(grep 'database_password' /etc/kolla/passwords.yml | awk '{print $2}') --all-databases > openstack-backup.sql # 恢复数据库 sudo docker exec -i mariadb mysql -uroot -p$(grep 'database_password' /etc/kolla/passwords.yml | awk '{print $2}') < openstack-backup.sql 

七、故障排查

1. 查看容器日志

复制代码
sudo docker logs <container_name>  

2. 检查网络配置

复制代码
# 验证 Neutron Agent  
openstack network agent list  

# 检查 OVS 桥接  
sudo ovs-vsctl show  

总结

  • 核心工具:Kolla-Ansible 提供了容器化部署的标准化流程,适合生产环境。

  • 关键步骤:网络规划、Inventory 配置、全局参数调优。

  • 扩展性:通过添加计算/存储节点横向扩展资源。

  • 注意事项

    • 生产环境需启用 TLS 加密和防火墙规则。

    • 定期备份数据库和配置文件。

相关推荐
大霞上仙34 分钟前
nonlocal 与global关键字
开发语言·python
huangyuchi.37 分钟前
【Linux】LInux下第一个程序:进度条
linux·运维·服务器·笔记·进度条·c/c++
tuan_zhang42 分钟前
第七章:未名湖畔的樱花网关
程序人生·云计算
weixin_418007601 小时前
MQTTX连接阿里云的物联网配置
物联网·阿里云·云计算
帽儿山的枪手1 小时前
程序员必掌握的iptables五表五链
linux·网络协议
Mark_Aussie1 小时前
Flask-SQLAlchemy使用小结
python·flask
程序员阿龙1 小时前
【精选】计算机毕业设计Python Flask海口天气数据分析可视化系统 气象数据采集处理 天气趋势图表展示 数据可视化平台源码+论文+PPT+讲解
python·flask·课程设计·数据可视化系统·天气数据分析·海口气象数据·pandas 数据处理
西阳未落1 小时前
Linux(14)——库的制作与原理
linux
ZHOU_WUYI1 小时前
Flask与Celery 项目应用(shared_task使用)
后端·python·flask
BOB-wangbaohai1 小时前
阿里云ACP云计算备考笔记 (4)——企业应用服务
阿里云·云计算·云监控·云解析·云cdn·sls日志服务