环境说明
| 项目 | 值 |
|---|---|
| 控制节点主机名 | controller |
| 控制节点管理网 IP | 11.0.1.30 |
| 计算节点主机名 | compute |
| 计算节点管理网 IP | 11.0.1.40 |
| 管理网段 | 11.0.1.0/24 |
| 管理网网关 | 11.0.1.2 |
| Provider 网卡 | ens34(第二张网卡,不配置 IP) |
| 外部物理网络名 | provider |
| root 密码(两端) | 000000 |
1. 网络规划
1.1 VMware 网卡配置
控制节点与计算节点均采用双网卡:
| 网卡 | VMware 模式 | 虚拟网络 | 用途 |
|---|---|---|---|
| ens33 | NAT | VMnet8 | 管理网 |
| ens34 | 仅主机 | VMnet1 | Provider 外部网络 |
重要: Provider 对应的 VMnet1 须 关闭 VMware DHCP,避免与 Neutron 外部子网地址池冲突。
1.2 管理网静态 IP
控制节点 /etc/sysconfig/network-scripts/ifcfg-ens33:
DEVICE=ens33TYPE=EthernetBOOTPROTO=staticONBOOT=yesIPADDR=11.0.1.30NETMASK=255.255.255.0GATEWAY=11.0.1.2DNS1=114.114.114.114计算节点 将 IPADDR 改为 11.0.1.40,其余相同。
systemctl restart networkping -c 2 11.0.1.30ping -c 2 11.0.1.40ping -c 2 www.baidu.com1.3 确认 Provider 网卡
ip a# ens33:有 IP 11.0.1.30 或 11.0.1.40# ens34:无 IP,后续由 Neutron 桥接2. 部署包与软件源
将 openstack-train.tar.gz 上传至两端 /root/ 并解压:
cd /roottar xzf openstack-train.tar.gzchmod +x /root/train/*.sh2.1 配置 YUM 源
控制节点与计算节点均执行:
mkdir -p /etc/yum.repos.d/backupmv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ 2>/dev/null || truecp /root/train/repo/*.repo /etc/yum.repos.d/yum clean all && yum makecache验收:
yum repolist | grep -E 'base|updates|extras|openstack|qemu|ceph|nfs'内置源包括 CentOS 基础源(阿里云)及 OpenStack Train、QEMU、Ceph、NFS-Ganesha 等依赖源,路径固定为 7.9.2009。
3. 全局配置文件 openrc.sh
两端均创建 /etc/openstack/openrc.sh:
mkdir -p /etc/openstackcp /root/train/openrc.sh.example /etc/openstack/openrc.shvim /etc/openstack/openrc.sh控制节点与计算节点内容一致(关键项):
HOST_IP=11.0.1.30HOST_PASS=000000HOST_NAME=controller
HOST_IP_NODE=11.0.1.40HOST_PASS_NODE=000000HOST_NAME_NODE=compute
network_segment_IP=11.0.1.0/24
RABBIT_USER=openstackRABBIT_PASS=000000
DB_PASS=000000
DOMAIN_NAME=defaultADMIN_PASS=000000DEMO_PASS=000000KEYSTONE_DBPASS=000000
GLANCE_DBPASS=000000GLANCE_PASS=000000
PLACEMENT_DBPASS=000000PLACEMENT_PASS=000000
NOVA_DBPASS=000000NOVA_PASS=000000
NEUTRON_DBPASS=000000NEUTRON_PASS=000000METADATA_SECRET=000000
INTERFACE_NAME=ens34Physical_NAME=providerminvlan=1000maxvlan=2000
CINDER_DBPASS=000000CINDER_PASS=000000BLOCK_DISK=sdb
SWIFT_PASS=000000OBJECT_DISK=sdcSTORAGE_LOCAL_NET_IP=11.0.1.40
HEAT_DBPASS=000000HEAT_PASS=000000
HOST_NAME始终填controller,供各组件连接 Keystone、RabbitMQ 等服务;主机名由下一步脚本根据本机 IP 自动设置。
4. 主机初始化(控制节点 + 计算节点)
4.1 安装基础工具
yum install -y python-openstackclient crudini expect lsof net-tools vim sshpass4.2 关闭防火墙与 SELinux
实验环境关闭以避免端口受阻:
systemctl stop firewalldsystemctl disable firewalldsetenforce 0sed -i 's/^SELINUX=\(enforcing\|permissive\)/SELINUX=disabled/' /etc/selinux/config4.3 设置主机名
控制节点:
hostnamectl set-hostname controller计算节点:
hostnamectl set-hostname compute4.4 配置 hosts
两端 /etc/hosts 追加:
11.0.1.30 controller11.0.1.40 compute4.5 SSH 免密登录
ssh-keygen -t rsa -N "" -f /root/.ssh/id_rsasshpass -p 000000 ssh-copy-id -o StrictHostKeyChecking=no root@11.0.1.40sshpass -p 000000 ssh-copy-id -o StrictHostKeyChecking=no root@11.0.1.304.6 时间同步(chrony)
控制节点 /etc/chrony.conf 注释默认 server 后追加:
server ntp.aliyun.com iburstallow 11.0.1.0/24local stratum 10计算节点 /etc/chrony.conf:
server controller iburst两端执行:
yum install -y chronysystemctl enable --now chronyd5. 验收
getenforce # Disabledhostname # controller 或 computegrep -E 'controller|compute' /etc/hostsssh root@controller hostname # 无密码ssh root@compute hostname # 无密码chronyc sources # 控制节点见公网 NTP;计算节点见 controllercrudini --version下一步:MySQL 安装(仅控制节点)