从零搭建OpenStack实验环境:基于先电IaaS v2.2的避坑指南
云计算技术的学习离不开实践,而OpenStack作为开源云平台的代表,其复杂的环境配置常常让初学者望而却步。本文将带你使用VMware Workstation和先电IaaS v2.2镜像,一步步搭建完整的OpenStack实验环境,特别针对网络配置、镜像挂载等关键环节提供详细解决方案。
1. 实验环境准备与规划
搭建OpenStack实验环境前,合理的资源规划和准备工作能避免后续很多问题。我们采用双节点架构(控制节点+计算节点),这是学习OpenStack最基础的拓扑结构。
硬件资源配置建议:
- VMware版本:Workstation Pro 15.5.2(兼容性最佳)
- 控制器节点(controller):
- 内存:≥4GB(建议6GB)
- CPU:2核心
- 硬盘:≥50GB
- 计算节点(compute):
- 内存:≥3GB
- CPU:1核心
- 硬盘:≥40GB
注意:资源分配不足会导致安装过程中服务启动失败,特别是内存不足时Nova服务容易出现异常。
网络配置方案:我们采用双网卡设计,分别用于管理网络和数据网络:
| 节点类型 | VMnet1 (管理网络) | VMnet2 (数据网络) |
|---|---|---|
| controller | 192.168.28.10 | 192.168.128.10 |
| compute | 192.168.28.20 | 192.168.128.20 |
所需镜像文件:
- CentOS-7-x86_64-DVD-1511.iso(基础系统)
- XianDian-IaaS-v2.2.iso(先电OpenStack套件)
2. 基础系统安装与配置
2.1 虚拟机初始化设置
为两个节点安装CentOS 7系统时,建议选择"Minimal Install"安装模式,减少不必要的软件包占用资源。安装完成后,首先进行基础配置:
# 关闭防火墙和SELinux(实验环境适用) systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 设置主机名(分别在两个节点执行) hostnamectl set-hostname controller # 控制节点 hostnamectl set-hostname compute # 计算节点 # 配置hosts解析 cat >>/etc/hosts<<EOF 192.168.28.10 controller 192.168.28.20 compute EOF2.2 镜像挂载与Yum源配置
先电IaaS镜像的正确挂载是环境搭建的关键步骤,常见问题多源于此:
# 创建挂载目录 cd /opt mkdir -p centos iaas # 配置自动挂载 cat >>/etc/fstab<<EOF /dev/cdrom /opt/centos iso9660 defaults 0 0 /opt/XianDian-IaaS-v2.2.iso /opt/iaas iso9660 defaults 0 0 EOF # 立即生效 mount -a配置本地Yum源时,需要特别注意CentOS基础源和IaaS源的优先级:
# 备份原有repo文件 cd /etc/yum.repos.d mkdir -p backup mv CentOS-* backup/ # 创建本地repo文件 cat >local.repo<<EOF [centos] name=centos baseurl=file:///opt/centos gpgcheck=0 enabled=1 [iaas] name=iaas baseurl=file:///opt/iaas/iaas-repo gpgcheck=0 enabled=1 EOF # 重建缓存 yum clean all yum makecache常见问题:若yum makecache报错,检查镜像是否成功挂载(使用
df -h命令),并确认/opt/centos和/opt/iaas目录下有内容。
3. 服务部署与节点协作
3.1 FTP服务配置(控制器节点)
利用FTP服务可以简化计算节点对控制器节点资源的访问:
# 安装vsftpd yum install -y vsftpd # 配置匿名访问 cat >>/etc/vsftpd/vsftpd.conf<<EOF anon_root=/opt EOF # 启动服务 systemctl start vsftpd systemctl enable vsftpd3.2 计算节点特殊配置
计算节点需要通过FTP访问控制器节点的资源,这是先电IaaS方案的精妙之处:
# 配置计算节点的yum源 cat >/etc/yum.repos.d/ftp.repo<<EOF [centos] name=centos baseurl=ftp://192.168.28.10/centos gpgcheck=0 enabled=1 [iaas] name=iaas baseurl=ftp://192.168.28.10/iaas/iaas-repo gpgcheck=0 enabled=1 EOF # 验证FTP连接 curl ftp://192.168.28.10/3.3 OpenStack应答文件配置
先电IaaS使用openrc.sh作为应答文件,需要精确配置以下参数:
# 修改应答文件(控制器节点) sed -i 's/^#//' /etc/xiandian/openrc.sh sed -i 's/PASS=/PASS=000000/g' /etc/xiandian/openrc.sh sed -i 's/HOST_IP=/HOST_IP=192.168.28.10/g' /etc/xiandian/openrc.sh sed -i 's/HOST_NAME=/HOST_NAME=controller/g' /etc/xiandian/openrc.sh sed -i 's/HOST_IP_NODE=/HOST_IP_NODE=192.168.28.20/g' /etc/xiandian/openrc.sh sed -i 's/HOST_NAME_NODE=/HOST_NAME_NODE=compute/g' /etc/xiandian/openrc.sh sed -i 's/INTERFACE_NAME=/INTERFACE_NAME=ens34/g' /etc/xiandian/openrc.sh关键检查点:使用
cat /etc/xiandian/openrc.sh确认所有参数已正确设置,特别是网络接口名称(ens34可能需根据实际情况调整)。
4. OpenStack组件安装与验证
4.1 系统初始化
在两个节点上执行预安装脚本:
iaas-pre-host.sh脚本执行完成后必须重启系统,否则后续服务可能无法正常启动。
4.2 控制节点组件安装
控制器节点需要安装核心管理服务:
# 创建一键安装脚本 cat >/usr/local/bin/all-in-one.sh<<EOF iaas-install-mysql.sh iaas-install-keystone.sh iaas-install-glance.sh iaas-install-nova-controller.sh iaas-install-neutron-controller.sh iaas-install-neutron-controller-gre.sh iaas-install-dashboard.sh EOF # 执行安装 chmod +x /usr/local/bin/all-in-one.sh source /usr/local/bin/all-in-one.sh4.3 计算节点组件安装
计算节点专注于虚拟机的运行:
# 创建一键安装脚本 cat >/usr/local/bin/all-in-one.sh<<EOF iaas-install-nova-compute.sh iaas-install-neutron-compute.sh iaas-install-neutron-compute-gre.sh EOF # 执行安装 chmod +x /usr/local/bin/all-in-one.sh source /usr/local/bin/all-in-one.sh安装过程可能需要30-60分钟,取决于硬件性能。期间可以另开终端监控日志:
tail -f /var/log/iaas-install.log4.4 访问验证
安装完成后,通过浏览器访问控制节点的Dashboard:
http://192.168.28.10/dashboard登录凭证:
- 域:demo
- 用户名:admin
- 密码:000000
成功登录后,建议进行以下验证:
- 在"管理员→系统→计算→主机聚合"中查看计算节点是否在线
- 创建测试实例,验证基础功能是否正常
- 检查网络服务,创建测试网络并关联实例
5. 常见问题排查指南
问题1:yum makecache失败
- 检查镜像挂载:
ls /opt/centos/Packages/应有大量rpm包 - 确认存储空间:
df -h查看/opt挂载点是否空间不足 - 检查fstab配置:确认两条挂载记录无误
问题2:FTP服务无法访问
- 验证服务状态:
systemctl status vsftpd - 检查防火墙:虽然已关闭,可再次确认
iptables -L - 测试本地连接:
curl ftp://localhost/
问题3:Dashboard无法访问
- 检查httpd服务:
systemctl status httpd - 查看端口监听:
netstat -tlnp | grep 80 - 验证SELinux状态:
getenforce应为Disabled
问题4:实例启动失败
- 检查计算节点资源:
free -m查看内存是否充足 - 查看Nova日志:
tail -f /var/log/nova/nova-compute.log - 验证网络连接:
ping 192.168.28.10(控制节点IP)
在实际教学环境中,这套基于先电IaaS v2.2的方案相比原生OpenStack安装更加友好,特别是自动化的应答文件设计和预置的安装脚本,大幅降低了初学者的入门门槛。记得在实验完成后保存虚拟机快照,方便后续反复练习不同功能的配置和使用。