某企业拟使用 OpenStack 搭建一个企业云平台,以实现资源池化弹性管理、企业应用集 中管理、统一安全认证和授权等管理。 系统架构如图 1 所示,本地环境IP 地址规划如表 1 所示。
如下为我的本地环境。
IP地址 功能
10.18.4.46 自建文件服务器
10.18.4.100 控制节点(controller)
10.18.4.200 计算节点(compute)
10.18.4.201~10.18.4.250 做集群或它用
【任务 1】私有云服务搭建(10分)
【题目 1】基础环境搭建(5 分)
使用提供的用户名密码,登录提供的 OpenStack 私有云平台,在当前租户下,使用 CentOS7.9 镜像,创建两台云主机,云主机类型使用 4vCPU/12G/100G_50G 类型。当前租户 下默认存在一张网卡,自行创建第二张网卡并连接至 controller 和 compute 节点(第二张网 卡的网段为 10.10.X.0/24,X 为工位号,不需要创建路由)。自行检查安全组策略,以确保网络正常通信与 ssh 连接,然后按以下要求配置服务器:
(1)设置控制节点主机名为 controller,设置计算节点主机名为 compute;
(2)修改 hosts 文件将 IP 地址映射为主机名;
完成后提交控制节点的用户名、密码和 IP 地址到答题框。
#controller node
hostnamectl set-hostname controller
#compute node
hostnamectl set-hostname compute
#ALL Node
cat >> /etc/hosts <
10.18.4.100 controller
10.18.4.200 compute
EOF
【题目 2】Yum 源配置[0.5 分]
使用提供的 http 服务地址,在 http 服务下,存在 centos 和 iaas 的网络 yum 源, 使用该 http 源作为安装 iaas 平台的网络源。 分别设置 controller 节点和 compute 节点的 yum 源文件 http.repo。
#直接删除默认源
rm -rf /etc/yum.repos.d/*
#创建http类型的yum源
cat > /etc/yum.repos.d/http.repo <
[centos]
name=centos
baseurl=
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=
gpgcheck=0
enabled=1
EOF
#可以通过来验证源的配置是否正确
yum makecache
【题目 3】配置无秘钥 ssh[0.5 分]
配置 controller 节点可以无秘钥访问 compute 节点,配置完成后,尝试 ssh 连接 compute 节点的 hostname 进行测试。完成后提交 controller 节点的用户名、密码和 IP 地址到答题框
#all node
#生成密钥,回显默认全部回车即可
ssh-keygen
#传输密钥
ssh-copy-id controller
ssh-copy-id compute
#测试尝试连接compute
ssh compute
题目 4】基础安装[0.5 分]
在控制节点和计算节点上分别安装 openstack-iaas 软件包,根据表 2 配置两个节点脚本 文件中的基本变量(配置脚本文件为/etc/openstack/openrc.sh)。
###0.提前准备
#分区
#在 compute 节点上利用空白分区划分 2个 20G 分区作为cinder与swift的存储
#划分1个5G的硬盘做为manila1的存储,见题目11
#划分1个5G的硬盘做为cinder扩展磁盘,见题目12
#分区也可以使用fdisk
parted /dev/vdb
(parted) mklabel gpt
(parted) mkpart a 0% 40%
(parted) mkpart b 40% 80%
(parted) mkpart c 80% 90%
(parted) mkpart d 90% 100%
(parted) quit
###1.安装openstack-iaas来生成openrc.sh与脚本
yum -y install openstack-iaas
###2.编辑环境变量,简化脚本
#使用vi底行模式,正则表达式如下
:%s@##.*@@g #删除文件中开头##的所在行
:%s@#@@g #删除文件中开头的#
:g@^$@d #删除文件中所有的空行
:%s/PASS=/PASS=000000/g #快速配置文件中个服务组件的password
#环境变量文件示例
HOST_IP=10.18.4.100 #controller ip address,按照实际环境来
HOST_PASS=000000
HOST_NAME=controller
HOST_IP_NODE=10.18.4.200 #compute ip address,按照实际环境来
HOST_PASS_NODE=000000
HOST_NAME_NODE=compute
network_segment_IP=10.18.4.0/24
RABBIT_USER=openstack
RABBIT_PASS=000000
DB_PASS=000000
DOMAIN_NAME=demo
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=1
maxvlan=200
CINDER_DBPASS=000000
CINDER_PASS=000000
BLOCK_DISK=sdb1
SWIFT_PASS=000000
OBJECT_DISK=sdb2
STORAGE_LOCAL_NET_IP=10.18.4.200 #compute IP
TROVE_DBPASS=000000
TROVE_PASS=000000
HEAT_DBPASS=000000
HEAT_PASS=000000
CEILOMETER_DBPASS=000000
CEILOMETER_PASS=000000
AODH_DBPASS=000000
AODH_PASS=000000
ZUN_DBPASS=000000
ZUN_PASS=000000
KURYR_PASS=000000
OCTAVIA_DBPASS=000000
OCTAVIA_PASS=000000
MANILA_DBPASS=000000
MANILA_PASS=000000
SHARE_DISK=sdb3 #manila—Disk
CLOUDKITTY_DBPASS=000000
CLOUDKITTY_PASS=000000
BARBICAN_DBPASS=000000
BARBICAN_PASS=000000
###首先执行初始化包###
(all node)
iaas-pre-host.sh
###3.controller node执行
iaas-install-mysql.sh && iaas-install-keystone.sh && iaas-install-glance.sh
&& iaas-install-placement.sh && iaas-install-nova-controller.sh
&& iaas-install-neutron-controller.sh && iaas-install-dashboard.sh
&& iaas-install-cinder-controller.sh && iaas-install-swift-controller.sh
&& iaas-install-heat.sh && iaas-install-manila-controller.sh
&& iaas-install-cloudkitty.sh && iaas-install-barbican.sh
###4.compute node 执行
#提示:当控制节点在部署脚本的时候,计算节点也别闲着,可以为其安装相应的包
cat /usr/local/bin/iaas-*compute.sh | grep yum
#然后将如上罗列出来的内容全部安装后,等待controller节点的脚本执行后,执行如下内容
iaas-install-nova-compute.sh && iaas-install-neutron-compute.sh
&& iaas-install-cinder-compute.sh && iaas-install-swift-compute.sh
&& iaas-install-manila-compute.sh