• 分类目录: 200 个;
  • 标签: 10638 个;
  • 资讯: 15068 篇;(待审:221 篇);
  • 网站: 12813 个 (待审:4425个);
  • 评论: 8 个 (待审:1 个) ;
  • 今日审核: 0 个 (待审:1 个) ;

OpenStack 安装部署:新手避坑 + 高效实操指南

时间:2025-10-11 14:05:01 栏目:站长资讯

OpenStack 安装部署:新手避坑 + 高效实操指南

OpenStack 安装部署:新手避坑 + 高效实操指南

 

 

刚接触 OpenStack 时,你是不是也遇到过这些麻烦?跟着网上教程一步步走,到某一步突然报错却找不到原因;好不容易装完,节点之间连不通,日志翻半天也没头绪;甚至有的教程本身步骤就有问题,浪费大半天时间还得推倒重来。

作为从运维转产品的人,我太懂这种感受了。我们团队 2023 年帮一家传统企业搭建私有云时,最初用手动部署的方式,6 个人折腾了 3 天还没搞定,后来优化了部署方案,2 个人 1 天就完成了基础环境搭建,还顺利跑通了虚拟机实例创建流程。

其实 OpenStack 安装部署难,核心是因为它涉及组件多、依赖关系复杂,稍有疏漏就会出问题。但只要选对工具、理清步骤,新手也能高效完成部署。接下来就从部署工具选择、详细操作步骤、常见坑点解决这几个方面,给大家讲透 OpenStack 安装部署这件事。

一、选对部署工具:少走 80% 的弯路

为什么要先选部署工具?因为 OpenStack 组件超过 10 个,手动部署需要配置大量文件、处理复杂依赖,对新手极不友好,出错率高还难排查。而合适的部署工具能自动化完成大部分操作,大幅降低难度。

目前主流的 OpenStack 部署工具有两种:DevStack Kolla-Ansible。很多新人会纠结选哪个,其实两者适用场景完全不同,我做了个对比表格,你一看就清楚:

 

对比维度

DevStack

Kolla-Ansible

适用场景

开发测试、学习研究

生产环境、企业级部署

部署速度

快(1-2 小时)

较慢(3-5 小时)

稳定性

较低(适合临时环境)

高(支持高可用)

操作复杂度

简单(单命令启动)

稍复杂(需配置 inventory

后期维护

困难(不适合长期使用)

方便(支持滚动升级)

我们团队在 2023 年那个企业项目里,最初想图快用了 DevStack,结果部署完的环境跑了没几天就出现组件崩溃的情况,后来换成 Kolla-Ansible 重新部署,不仅稳定性大幅提升,后续还顺利完成了 3 个节点的扩容。根据 OpenStack 官方 2024 年发布的用户调查报告,在生产环境中,Kolla-Ansible 的使用率已经超过了 65%,成为企业的首选部署工具。

不过值得注意的是,如果你只是想快速体验 OpenStack 的功能,比如测试某个组件的特性,DevStack 还是很合适的;但如果是要搭建长期使用的环境,哪怕是小型企业的私有云,也建议直接用 Kolla-Ansible,避免后期反复踩坑。

OpenStack 安装部署:新手避坑 + 高效实操指南

二、Kolla-Ansible 部署步骤:照着做就能成

Kolla-Ansible 部署 OpenStack,核心是做好环境准备、配置文件调整、镜像拉取、部署执行和功能验证这五步。每一步都有明确的操作要点,我会把具体怎么做、需要注意什么都讲清楚,你照着做就能少走很多弯路。

步骤 1:环境准备(最容易被忽略的关键一步)

首先得准备服务器,至少需要 2 台:1 台控制节点(Control Node),1 台计算节点(Compute Node)。硬件配置不能太低,控制节点至少要 4 CPU8G 内存、100G 硬盘;计算节点如果要跑虚拟机,建议 8 CPU16G 内存、200G 硬盘,硬盘最好用 SSD,能提升虚拟机存储性能。

操作系统推荐用 Ubuntu 22.04 LTS,因为 Kolla-Ansible 对这个版本的兼容性最好,遇到问题也更容易找到解决方案。接着要做这几个操作:

1. 给所有节点设置静态 IP,比如控制节点设为 192.168.1.10,计算节点设为 192.168.1.11,避免 IP 变动导致节点失联;

2. 配置主机名解析,在每台节点的 /etc/hosts 文件里,添加所有节点的 IP 和主机名映射,比如 “192.168.1.10 controller”“192.168.1.11 compute1”

3. 关闭防火墙和 SELinuxUbuntu “sudo ufw disable” 关闭防火墙,CentOS 则用 “sudo systemctl stop firewalld”

4. 配置免密登录,在控制节点上执行 “ssh-keygen” 生成密钥,然后用 “ssh-copy-id 用户名 @计算节点 IP” 把密钥传到所有计算节点,这样后续部署不用反复输密码。

我之前带新人时,有个同事就是没配置主机名解析,结果部署到一半提示 找不到 compute 节点,排查了 1 个多小时才发现是这个问题。所以这一步一定要仔细,每配置完一项就检查一遍。

步骤 2:安装依赖与配置 Kolla-Ansible

环境准备好后,就可以在控制节点上安装 Kolla-Ansible 了。首先安装必要的依赖包,执行 “sudo apt update && sudo apt install -y python3-pip python3-dev libffi-dev gcc libssl-dev”,这些包是保证 Kolla-Ansible 正常运行的基础。

然后用 pip 安装 Kolla-Ansible,命令是 “sudo pip3 install kolla-ansible”。安装完成后,需要复制配置文件到 /etc/kolla 目录,执行 “sudo cp -r /usr/local/share/kolla-ansible/etc_examples/kolla/etc/” “sudo cp /usr/local/share/kolla-ansible/ansible/inventory/* /etc/kolla/”

接下来要修改 inventory 文件,这个文件是用来指定控制节点和计算节点的。打开 /etc/kolla/all-in-one 文件(如果是多节点部署就改 multinode 文件),在 “[control]” 下面添加控制节点的主机名或 IP,在 “[compute]” 下面添加计算节点的主机名或 IP,比如:

[control]

controller

[compute]

compute1

这里有个小技巧,你可以用 “ansible -i /etc/kolla/all-in-one all -m ping” 命令测试节点连通性,如果所有节点都返回 “pong”,说明配置没问题;如果报错,就检查免密登录和主机名解析是否正确。

步骤 3:生成与修改配置文件

配置文件是部署的核心,需要根据实际环境调整。首先生成密码文件,执行 “sudo kolla-genpwd”,这个命令会在 /etc/kolla 目录下生成 passwords.yml 文件,里面包含了 OpenStack 所有组件的默认密码,建议把 keystone_admin_password 改成自己容易记的密码,比如 “Admin@123”,后续登录 Dashboard 会用到。

然后修改 globals.yml 文件,这个文件里的配置会影响整个部署过程。主要改这几项:

1. “kolla_base_distro: ubuntu”:指定基础操作系统,Ubuntu 就填 ubuntuCentOS centos

2. “kolla_install_type: binary”:安装类型,binary 是二进制安装,source 是源码安装,新手建议选 binary,速度更快、更稳定;

3. “network_interface: ens33”:管理网络接口,用 “ip addr” 命令查看自己的网卡名,比如 ens33eth0

4. “neutron_external_interface: ens34”:外部网络接口,用来提供虚拟机的外网访问,需要单独准备一块网卡;

5. “enable_haproxy: yes”:如果是多控制节点,需要开启 HAProxy 做负载均衡,单控制节点也可以开启,提升稳定性。

我之前在一个项目里,因为把 neutron_external_interface 填成了和 network_interface 一样的网卡,导致部署完后虚拟机无法访问外网,后来改对网卡名重新部署才解决。所以这里一定要仔细核对网卡信息,不能填错。

步骤 4:拉取镜像与执行部署

配置文件改好后,就可以拉取镜像了。执行 “sudo kolla-ansible pull”,这个命令会从 Docker Hub 拉取 OpenStack 所有组件的镜像,根据网络速度不同,时间会不一样,一般需要 30 分钟到 1 小时。如果网络慢,可以配置国内镜像源,比如添加 “docker_registry: registry.cn-hangzhou.aliyuncs.comglobals.yml 文件里,能大幅提升拉取速度。

镜像拉取完成后,先执行预部署检查,命令是 “sudo kolla-ansible prechecks -i /etc/kolla/all-in-one”。这个步骤会检查环境是否满足部署要求,比如依赖包是否安装、磁盘空间是否足够、网络是否通畅等。如果有报错,就根据提示解决,比如缺少某个包就安装,磁盘空间不够就清理文件。

预检查通过后,就可以正式部署了,执行 “sudo kolla-ansible deploy -i /etc/kolla/all-in-one”。部署过程中会显示每一步的执行情况,如果出现失败,不要慌,先看报错信息,大部分问题都是配置错误导致的,比如密码不对、网卡名错误等,改好配置后重新执行部署命令即可。

我们团队在那个企业项目里,第一次部署时因为磁盘空间不够报错,清理了没用的日志文件后,重新执行部署就成功了。整个部署过程大概用了 4 小时,比最初用 DevStack 的方式稳定多了。

步骤 5:验证部署结果

部署完成后,需要验证是否成功。首先执行 “sudo kolla-ansible post-deploy”,这个命令会生成 admin-openrc.sh 文件,里面包含了登录 OpenStack 的环境变量。然后执行 “source /etc/kolla/admin-openrc.sh” 加载环境变量,接着用 “openstack server list” 命令查看虚拟机列表,如果没有报错,说明控制节点和计算节点通信正常。

还可以通过 Dashboard 登录验证,打开浏览器,输入控制节点的 IP 地址,比如 http://192.168.1.10,登录用户名是 admin,密码就是之前在 passwords.yml 文件里改的 keystone_admin_password。登录后如果能看到 Dashboard 界面,并且能创建虚拟机实例,就说明部署成功了。

有趣的是,很多新人部署完成后,只检查了命令行是否能执行,却没登录 Dashboard 验证,后来发现 Dashboard 因为配置问题无法访问,影响了后续使用。所以这一步一定要同时验证命令行和 Dashboard,确保所有功能都正常。

三、常见坑点与解决办法:帮你节省排查时间

OpenStack 安装部署过程中,即使按照步骤来,也可能遇到各种问题。我整理了几个最常见的坑点,以及对应的解决办法,帮你少走弯路。

坑点 1:部署过程中提示 镜像拉取失败

这是最常见的问题,主要原因有两个:一是网络不通,二是镜像源问题。解决办法很简单:首先检查控制节点是否能访问外网,用 “ping www.baidu.com测试;如果网络通,就配置国内镜像源,在 globals.yml 文件里添加 “docker_registry: registry.cn-hangzhou.aliyuncs.com,然后重新执行 “sudo kolla-ansible pull” 命令。

? 注意:如果是私有网络环境,无法访问外网,就需要先在能联网的机器上拉取镜像,然后导出镜像文件,再拷贝到控制节点和计算节点上导入,具体命令是 “docker save 镜像名> 镜像文件.tar” “docker load < 镜像文件.tar”

坑点 2:虚拟机创建后无法获取 IP 地址

这个问题通常是 Neutron 组件配置错误导致的。首先检查 neutron_external_interface 是否配置正确,确保用的是专门的外部网络接口;然后查看 Neutron 的日志,执行 “sudo docker logs neutron-server”,如果看到 “no route to host” 的报错,就检查计算节点和控制节点的网络是否连通,比如用 “ping” 命令测试;如果日志显示 “port binding failed”,就检查计算节点的 neutron-openvswitch-agent 容器是否正常运行,用 “sudo docker ps | grep neutron-openvswitch-agent” 查看,没运行的话就执行 “sudo docker start neutron-openvswitch-agent”

我们团队之前遇到过一次这个问题,排查后发现是计算节点的 neutron-openvswitch-agent 容器没启动,启动后虚拟机就能正常获取 IP 了。

坑点 3:登录 Dashboard 提示 认证失败

遇到这个问题,首先检查输入的密码是否正确,就是 passwords.yml 文件里的 keystone_admin_password;如果密码没错,就检查 keystone 容器是否正常运行,执行 “sudo docker ps | grep keystone”,如果没运行,就重启容器;还可以用命令行测试认证是否正常,执行 “openstack token issue”,如果能生成 token,说明认证服务没问题,可能是 Dashboard 的配置错误,检查 /etc/kolla/horizon/horizon.conf 文件里的 keystone 相关配置是否正确。

反直觉的是,有时候 Dashboard 认证失败,不是密码或配置的问题,而是浏览器缓存导致的,清除浏览器缓存后重新登录,问题就解决了。

四、部署完成后的检查清单

为了确保部署的 OpenStack 环境能正常使用,建议按照下面的检查清单逐一验证:

☑ 控制节点所有容器正常运行(执行 “sudo docker ps”,确保没有 Exited 状态的容器)

☑ 计算节点所有容器正常运行(同上,需要在计算节点执行)

☑ 命令行能正常执行 OpenStack 命令(如 “openstack server list”“openstack user list”

☑ 能通过 Dashboard 登录(用户名 admin,密码正确)

☑ 能在 Dashboard 上创建虚拟机实例(选择合适的镜像和规格,创建后状态为 Active

☑ 虚拟机能获取 IP 地址(在 Dashboard 或命令行查看虚拟机 IP

☑ 虚拟机能访问内网(ping 控制节点 IP,能通)

☑ 虚拟机能访问外网(ping www.baidu.com,能通,需要配置外部网络)

如果所有检查项都通过,说明你的 OpenStack 环境已经搭建成功,可以开始使用了;如果有没通过的,就对照前面讲的步骤和坑点,逐一排查解决。

其实 OpenStack 安装部署并没有那么难,关键是选对工具、理清步骤,遇到问题不要慌,一步步排查。我最初学的时候,也踩了很多坑,但每次解决问题后,对 OpenStack 的理解就更深一层。你不用等所有条件都完美了再开始,今天就可以找两台服务器,按照上面的步骤试试,相信你很快就能搭建出自己的 OpenStack 环境。


标签:

版权声明:

1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

2、本站仅提供信息发布平台,不承担相关法律责任。

3、若侵犯您的版权或隐私,请联系本站管理员删除。

4、、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。