基础环境配置

环境说明#

项目
控制节点主机名controller
控制节点管理网 IP11.0.1.30
计算节点主机名compute
计算节点管理网 IP11.0.1.40
管理网段11.0.1.0/24
管理网网关11.0.1.2
Provider 网卡ens34(第二张网卡,不配置 IP)
外部物理网络名provider
root 密码(两端)000000

1. 网络规划#

1.1 VMware 网卡配置#

控制节点与计算节点均采用双网卡:

网卡VMware 模式虚拟网络用途
ens33NATVMnet8管理网
ens34仅主机VMnet1Provider 外部网络

重要: Provider 对应的 VMnet1 须 关闭 VMware DHCP,避免与 Neutron 外部子网地址池冲突。

1.2 管理网静态 IP#

控制节点 /etc/sysconfig/network-scripts/ifcfg-ens33

DEVICE=ens33
TYPE=Ethernet
BOOTPROTO=static
ONBOOT=yes
IPADDR=11.0.1.30
NETMASK=255.255.255.0
GATEWAY=11.0.1.2
DNS1=114.114.114.114

计算节点IPADDR 改为 11.0.1.40,其余相同。

Terminal window
systemctl restart network
ping -c 2 11.0.1.30
ping -c 2 11.0.1.40
ping -c 2 www.baidu.com

1.3 确认 Provider 网卡#

Terminal window
ip a
# ens33:有 IP 11.0.1.30 或 11.0.1.40
# ens34:无 IP,后续由 Neutron 桥接

2. 部署包与软件源#

openstack-train.tar.gz 上传至两端 /root/ 并解压:

Terminal window
cd /root
tar xzf openstack-train.tar.gz
chmod +x /root/train/*.sh

2.1 配置 YUM 源#

控制节点与计算节点均执行:

Terminal window
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ 2>/dev/null || true
cp /root/train/repo/*.repo /etc/yum.repos.d/
yum clean all && yum makecache

验收:

Terminal window
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

Terminal window
mkdir -p /etc/openstack
cp /root/train/openrc.sh.example /etc/openstack/openrc.sh
vim /etc/openstack/openrc.sh

控制节点与计算节点内容一致(关键项):

Terminal window
HOST_IP=11.0.1.30
HOST_PASS=000000
HOST_NAME=controller
HOST_IP_NODE=11.0.1.40
HOST_PASS_NODE=000000
HOST_NAME_NODE=compute
network_segment_IP=11.0.1.0/24
RABBIT_USER=openstack
RABBIT_PASS=000000
DB_PASS=000000
DOMAIN_NAME=default
ADMIN_PASS=000000
DEMO_PASS=000000
KEYSTONE_DBPASS=000000
GLANCE_DBPASS=000000
GLANCE_PASS=000000
PLACEMENT_DBPASS=000000
PLACEMENT_PASS=000000
NOVA_DBPASS=000000
NOVA_PASS=000000
NEUTRON_DBPASS=000000
NEUTRON_PASS=000000
METADATA_SECRET=000000
INTERFACE_NAME=ens34
Physical_NAME=provider
minvlan=1000
maxvlan=2000
CINDER_DBPASS=000000
CINDER_PASS=000000
BLOCK_DISK=sdb
SWIFT_PASS=000000
OBJECT_DISK=sdc
STORAGE_LOCAL_NET_IP=11.0.1.40
HEAT_DBPASS=000000
HEAT_PASS=000000

HOST_NAME 始终填 controller,供各组件连接 Keystone、RabbitMQ 等服务;主机名由下一步脚本根据本机 IP 自动设置。

4. 主机初始化(控制节点 + 计算节点)#

4.1 安装基础工具#

Terminal window
yum install -y python-openstackclient crudini expect lsof net-tools vim sshpass

4.2 关闭防火墙与 SELinux#

实验环境关闭以避免端口受阻:

Terminal window
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/^SELINUX=\(enforcing\|permissive\)/SELINUX=disabled/' /etc/selinux/config

4.3 设置主机名#

控制节点:

Terminal window
hostnamectl set-hostname controller

计算节点:

Terminal window
hostnamectl set-hostname compute

4.4 配置 hosts#

两端 /etc/hosts 追加:

11.0.1.30 controller
11.0.1.40 compute

4.5 SSH 免密登录#

Terminal window
ssh-keygen -t rsa -N "" -f /root/.ssh/id_rsa
sshpass -p 000000 ssh-copy-id -o StrictHostKeyChecking=no root@11.0.1.40
sshpass -p 000000 ssh-copy-id -o StrictHostKeyChecking=no root@11.0.1.30

4.6 时间同步(chrony)#

控制节点 /etc/chrony.conf 注释默认 server 后追加:

server ntp.aliyun.com iburst
allow 11.0.1.0/24
local stratum 10

计算节点 /etc/chrony.conf

server controller iburst

两端执行:

Terminal window
yum install -y chrony
systemctl enable --now chronyd

5. 验收#

Terminal window
getenforce # Disabled
hostname # controller 或 compute
grep -E 'controller|compute' /etc/hosts
ssh root@controller hostname # 无密码
ssh root@compute hostname # 无密码
chronyc sources # 控制节点见公网 NTP;计算节点见 controller
crudini --version

下一步:MySQL 安装(仅控制节点)

文章目录

文章目录