1. 虚拟机配置
1.1 生成动态IP地址
centos默认未启用DHCP服务,使用dhclient
请求动态IP地址,临时获取网络连接能力,以进一步配置。此处请求到动态IP地址192.168.26.128/24
。
1.2 配置静态IP地址
OpenStack服务依赖固定IP地址,配置静态IP地址可保证服务稳定运行。
通过终端工具连接shell进行操作。
修改网卡参数配置,BOOTPROTO
修改为static静态模式,以确保IP地址不变。
ONBOOT
修改为yes,开机时自动启动网卡,避免手动启用网络。
基于之前动态获取的IP网段(192.168.26.128)设置固定IP(IPADDR
),确保与主机NAT网络处于同一网段,避免网络不通,同时此IP将作为OpenStack服务的核心地址。
GATEWAY
是一个网络连接到另一个网络的关口,NAT模式下VMWare默认网关通常为网段的第二个地址(192.168.26.2),配置网关可确保虚拟机能访问互联网。
保存配置后重启网卡,并确认网络连接正常。
1.3 禁用防火墙
CentOS7默认启用firewalld
防火墙,其默认规则会止OpenStack服务所需端口,导致服务无法对外提供访问。禁用防火墙可关闭端口拦截,确保OpenStack组件间通信正常,同时简化部署流程,避免手动配置大量端口规则。
systemctl stop仅临时关闭服务,systemctl disable不会停止服务但会取消服务开机自启。
1.4 禁止SELinux
SELinux主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。linux操作系统中默认开启了防火墙,SELinux也处于启动状态,一般状态为enforing。致使很多服务端口默认是关闭的。
修改SELinux的配置文件/etc/selinux/config
将工作模式设为disabled,然后重启服务器。
1.5 停用NetWorkManager服务
NetworkManager
是CentOS 7默认的网络管理工具,但其与传统network
服务可能存在冲突(如同时管理网卡导致配置不一致),而OpenStack依赖network
服务稳定运行。禁用NetworkManager
可避免冲突,确保network
服务独占网络管理权限,防止网络配置异(IP地址丢失、网卡频繁断开)。
1.6 修改主机名及映射
CentOS系统默认的主机名为localhost.localdomain
,为了便于使用,我们常常需要修改主机名。
hostnamectl set-hostname 主机名
等价于手动更新/etc/hostname
文件内容为主机名。编辑
/etc/hosts
目的是确保程序如sudo能够正确解析主机名。
1.7 yum仓库换源
yum仓库源为/etc/yum.repos.d/CentOS-Base.repo
文件,使用cp
命令备份该文件,然后通过curl
或wget
获取阿里云镜像源文件并将内容写入/etc/yum.repos.d/CentOS-Base.repo
。
# 使用wget -O直接将阿里云的repo保存
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo# 因CentOs 7默认未安装wget,所以使用curl获取repo内容并写入
sudo curl http://mirrors.aliyun.com/repo/Centos-7.repo > /etc/yum.repos.d/CentOS-Base.repo
1.8 时间同步设置
使用yum install -y chrony
安装时间同步软件Chrony。
centos7支持chrony时间同步配置,ntp在centos8上已经不再支持。Chrony相比ntp时间同步配置更简单更高效,它是一个开源的软件能保持系统始终与服务器时间同步。
在/etc/chrony.conf
中配置时间同步源为阿里云NTP服务器(server ntp1.aliyun.com iburst
),阿里服务器稳定性高、延迟低,可确保虚拟机时间与标准时间一致。
iburst参数表示初始同步时发送多个请求,加快同步速度,避免因时间差过大导致OpenStack服务异常。
1.9 更新软件包
2. 搭建OpenStack
2.1 yum仓库准备
yum -y install centos-release-openstack-train
OpenStack Train是稳定版本,centos-release-openstack-train
是官方提供的yum仓库配置包,安装后会自动添加OpenStack Train版本的专用仓库,后续可通过yum直接安装Train版本的组件,避免手动添加仓库时的配置错误。
find /etc/yum.repos.d -type f -exec sed -i 's|mirror\.centos\.org|vault.centos.org|g; s|mirrorlist\.centos\.org|vault.centos.org|g' {} +
安装centos-release-openstack-train
后,附带的仓库文件中可能引用已停止维护的mirror.centos.org
链接(CentOS 7官方仓库已迁移至vault.centos.org
),导致yum下载时提示“无法找到有效baseurl”。通过sed命令批量替换链接为vault.centos.org
,可恢复仓库可用性,确保后续安装packstack时能正常下载依赖包。
sed命令中,参数
-i
表示直接编辑文件,会匹配文件中每一行进行替换。
sed '表达式; 表达式'
等价于sed '表达式' | sed '表达式'
,组合多个表达式。
-i 's/旧内容/新内容/g'
表示匹配文件中每一行的所有旧内容
替换为新内容
。s
代表替换操作的s命令;g
是全面替换标记,使用后缀/g标记会替换每一行中的所有匹配;/
和|
等价,都是作为定界符使用
可以看到处理后查找不到mirror.centos.org
了。
- 在指定目录下的所有文件中递归地查找模式,显示匹配的行号并忽略二进制文件:
grep [-rnI|--recursive --line-number --binary-files=without-match] "模式字符串" 路径/到/目录
部分仓库文件中baseurl(仓库地址)被注释,而mirrorlist可能因镜像服务器不可用导致失效;取消baseurl注释可强制使用指定的仓库地址,避免因mirrorlist解析失败导致的包下载问题。
将/etc/yum.repos.d
路径下的文件中baseurl前的注释符号(#)取消。
使用grep -rnI "#baseurl=" /etc/yum.repos.d/
可以检索到被注释的baseurl所在的文件和行号,复用上面的替换命令将注释符号取消。
find /etc/yum.repos.d -type f -exec sed -i 's|#baseurl=|baseurl=|g' {} +
2.2 packstack安装
执行yum -y update
以更新系统软件包到最新版本,确保系统环境的兼容性与安全性。
执行yum -y install openstack-packstack
安装Packstack工具,它能简化OpenStack的部署流程,通过自动化的方式帮助快速搭建OpenStack云平台环境,减少手动配置的复杂度与出错概率。
执行packstack --allinone
将OpenStack所有组件(控制节点、计算节点、网络节点、存储节点)部署在同一台虚拟机上,适合测试环境、学习环境;此模式配置简单,packstack会自动分配资源、设置组件间通信参数,避免多节点部署时的网络配置、权限同步等复杂问题。
2.3 packstack运行
部署完成后,执行并查看root用户目录下的账号信息文件。
source keystonerc_admin
cat keystonerc_admin
source keystonerc_demo
cat keystonerc_demo
keystonerc_admin是packstack自动生成的环境变量文件,包含Keystone(OpenStack身份认证服务)的管理员账号信息(用户名、密码、认证URL);keystonerc_demo是演示账号(普通用户)的环境变量文件,包含demo用户的认证信息,适合用于测试普通用户权限,避免直接使用管理员账号进行非必要操作,降低误操作风险。
最后根据安装完成后的提示,浏览器访问http://192.168.26.128
并使用用户名和密码登录OpenStack网页端,因为OpenStack作为开源云计算平台,通过网页端提供了便捷的图形化管理界面。这样操作能让用户直观地对云资源(如虚拟机、存储、网络等)进行管理、配置与监控,无需依赖复杂的命令行操作,提升了云计算平台使用和管理的效率与便利性。