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 加密和防火墙规则。
定期备份数据库和配置文件。
OpenStack 全套搭建部署指南(基于 Kolla-Ansible)的更多相关文章
- Disconf 学习系列之全网最详细的最新稳定Disconf 搭建部署(基于Ubuntu14.04 / 16.04)(图文详解)
不多说直接上干货! https://www.cnblogs.com/wuxiaofeng/p/6882596.html (ubuntu16.04) https://www.cnblogs.com/he ...
- Spark集群基于Zookeeper的HA搭建部署笔记(转)
原文链接:Spark集群基于Zookeeper的HA搭建部署笔记 1.环境介绍 (1)操作系统RHEL6.2-64 (2)两个节点:spark1(192.168.232.147),spark2(192 ...
- PHP 基于 Jenkins ansible 动态选择版本进行自动化部署与回滚(第二版)
PHP 基于 Jenkins ansible 动态选择版本进行自动化部署与回滚(第二版) 先看流程图: 大概介绍一下: 版本选择使用jenkins 中的 git parameter 插件实现 回滚方式 ...
- zabbix环境搭建部署(一)
Linux高端架构师课程 Linux实战运维国内NO.1全套视频课程 QQ咨询:397824870 > 监控报警 > zabbix环境搭建部署(一) zabbix环境搭建部署(一) 监 ...
- openstack高可用集群21-生产环境高可用openstack集群部署记录
第一篇 集群概述 keepalived + haproxy +Rabbitmq集群+MariaDB Galera高可用集群 部署openstack时使用单个控制节点是非常危险的,这样就意味着单个节 ...
- 理解 OpenStack + Ceph (1):Ceph + OpenStack 集群部署和配置
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...
- Redis 集群搭建详细指南
先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...
- 首发福利!全球第一开源ERP Odoo系统架构部署指南 电子书分享
引言 Odoo,以前叫OpenERP,是比利时Odoo S.A.公司开发的一个企业应用软件套件,开源套件包括一个企业应用快速开发平台,以及几千个Odoo及第三方开发的企业应用模块.Odoo适用于各种规 ...
- Ubuntu14.04下Ambari安装搭建部署大数据集群(图文分五大步详解)(博主强烈推荐)
不多说,直接上干货! 写在前面的话 (1) 最近一段时间,因担任我团队实验室的大数据环境集群真实物理机器工作,至此,本人秉持负责.认真和细心的态度,先分别在虚拟机上模拟搭建ambari(基于CentO ...
- 《Openstack的搭建》RHEL6.5
Openstack就是搭建一个较为完整的虚拟化平台,把一个完整的物理机划分成若干个虚拟机来跑,从而实现资源的充分利用. Openstack对硬件的要求很高,要是你的物理机内存是4G的话,虚拟机的内存给 ...
随机推荐
- Nim 从入门到实战
Nim Nim 是一个与其 1.0 版本相似的新颖且令人兴奋的命令式编程语言.我使用 Nim 是为了它的性能与优雅,这无疑让我感到了莫大的乐趣.在这篇文章中我将向您展示一个我写的 Nim 项目的全部流 ...
- Qt数据库驱动编译(MySQL)
Qt数据库驱动编译(MySQL) 哈喽!我是 Pro_er,一名热爱编程的小伙伴.在这里我会分享一些实用的开发技巧和经验心得.如果你也对编程充满热情,欢迎关注并一起交流学习! 第一步:安装所需文件 / ...
- TextEdit 使用Mask验证输入格式为邮箱
设置Mask代码如下: <dxe:TextEdit Text="{Binding Email}" MaskType="RegEx" Mask=" ...
- Sqoop - 使用场景
Oracle >> HDFS sqoop import --connect jdbc:oracle:thin:@<oracle_host>:<oracle_port> ...
- 【由技及道】API契约的量子纠缠术:响应封装的十一维通信协议【人工智障AI2077的开发日志012】
摘要:在API通信的量子混沌中,30+种返回格式如同平行宇宙的物理定律相互碰撞.本文构建的十一维通信协议,通过时空锚点(ApiResult).量子过滤器(ResponseWrapper)和湮灭防护罩( ...
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(6)
1.问题描述: 使用华为内置的MapComponent, 发现显示不出来.查看日志, MapRender底层有报错. 解决方案: 麻烦按以下步骤检查下地图服务,特别是签名证书指纹那部分. 1.一般没有 ...
- EmlBuilder:一款超轻量级的EML格式电子邮件阅读和编辑工具
EmlBuilder 是一款超轻量级的电子邮件阅读和编辑工具,针对EML格式的文件具有非常强大的解析和容错能力,可实现超文本邮件的编写,并具备内嵌图片的编辑功能.该工具内部使用EmlParse对电子邮 ...
- 一个专业DBA应具备的技能
本文可以作为MySQL DBA面试官,以及候选人的双向参考 面试流程 接下来先说下我以往在做MySQL DBA面试时的过程(套路): 1.先自我介绍后,再让候选人花2-5分钟做下自我简介有不少人可能对 ...
- 工作日记-storm集群业务崩溃和解决方案
背景 昨天公司业务部门报告业务崩溃,查看各个业务节点后,定位问题到storm集群. 打开storm ui查看下任务状态,发现可以加载页面元素,但是无法加载数据,分析是nimbus挂掉了,重启nimbu ...
- exGCD 2025/1/10
前言: 全文均为蒟蒻作者手搓 虽也参考了许多 [luogu 题解/某SDN/cnblogs.com] 但很多地方均为作者瞎编 如有错误务必救救孩子 File int GCD(int a,int b){ ...