2022全国职业技能大赛-云计算私有云平台搭建及注意事项
@
环境准备
软件包:
答题云主机环境;CentOS-7-x86_64-DVD-2009.iso(centos7.9)
iaas版本;chinaskills_cloud_iaas_v2.0.3.iso(openstack T版)
国赛竞赛方式:
1,openstack平台,现场会提供一个IP地址,登录用户名和密码,可以登录openstack平台,再此平台中,选手可以创建云主机来进行答题,相关的网络配置、云主机类型、云主机镜像、安全策略等均配置完毕,选手只需要根据题目要求创建即可,注意创建网卡部分时,要创建两张网卡,第一张网卡用于远程连接和答题地址提交,第二张网卡则会被neutron脚本给修改。
2,答题平台,现场会提供IP地址、登录用户和密码,登录答题平台,然后可以看见题目,答题方式;必须要提交当前题目才能进行下一题,提交后会马上给分显示在可视化大屏中,并且该题目无论有分或者无分都不能再修改结果,提交答案方式;答题界面的题目下面有用户,密码,IP地址三个可填项,如果题目要求提交控制节点的云主机,则需要提交用户名(root)、密码(默认000000)、IP地址(xxx.xxx.xxx.xxx),一定要填写正确,写错了系统识别不到则没有分,注;假如搭建失败了,只需要快速搭建到题目部分即可,不存在前面获得过的分无效,系统的判分是只要当时的提交状态下虚拟机有题目答案即可
3,文件服务器,现场会给出一个IP地址,里面存放比赛所需要的所有软件包资源(yum源仓库基于htpp搭建),除了yum源搭建其他答题所需的软件包都是使用 curl -O 包地址的方式来搭建的
以下搭建可保证最快搭建出平台,不涉及题目
基础配置
配置主机名,域名解析,这些操作不做过多赘述。云主机中不需要做selinux以及防火墙等操作,默认是云主机没有安装这些服务的
搭建yum源
比赛使用文件服务器的形式使用http挂载yum源,10.60.2.20为我本地文件服务器地址
[root@controller ~]# cat /etc/yum.repos.d/http.repo
[centos]
name=centos
baseurl=http://10.60.2.20/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=http://10.60.2.20/iaas/iaas-repo
gpgcheck=0
enabled=1
[root@controller ~]# yum clean all && yum repolist
Loaded plugins: fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Cleaning repos: centos iaas
Cleaning up list of fastest mirrors
Loaded plugins: fastestmirror
Determining fastest mirrors
centos | 3.6 kB 00:00:00
iaas | 2.9 kB 00:00:00
(1/3): centos/group_gz | 153 kB 00:00:00
(2/3): iaas/primary_db | 597 kB 00:00:00
(3/3): centos/primary_db | 3.3 MB 00:00:00
repo id repo name status
centos centos 4,070
iaas iaas 954
repolist: 5,024
[root@controller ~]#
yum源成功后使用scp命令远程传输给compute节点
[root@controller ~]# scp /etc/yum.repos.d/http.repo compute:/etc/yum.repos.d/
修改openrc.sh
相比于先电,环境变量的脚本位置有改变
[root@controller ~]# yum install openstack-iaas
使用sed命令批量去除第一个#注释符为空
[root@controller ~]# sed -i -e 's/^#//'g /etc/openstack/openrc.sh
使用sed命令批量修改密码默认000000
[root@controller ~]# sed -i -e 's/PASS=/PASS=000000/'g /etc/openstack/openrc.sh
[root@controller ~]# cat /etc/openstack/openrc.sh
#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=10.60.3.7
#Controller HOST Password. example:000000
HOST_PASS=000000 # 切记密码这里我的虚拟机是默认000000,根据实际情况修改
#Controller Server hostname. example:controller
HOST_NAME=controller
#Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=10.60.3.21
#Compute HOST Password. example:000000
HOST_PASS_NODE=000000
#Compute Node hostname. example:compute
HOST_NAME_NODE=compute
#--------------------Chrony Config-------------------##
#Controller network segment IP. example:x.x.0.0/16(x.x.x.0/24)
network_segment_IP=10.60.3.0/24 #时间同步的IP地址
#--------------------Rabbit Config ------------------##
#user for rabbit. example:openstack
RABBIT_USER=openstack
#Password for rabbit user .example:000000
RABBIT_PASS=000000
#--------------------MySQL Config---------------------##
#Password for MySQL root user . exmaple:000000
DB_PASS=000000
#--------------------Keystone Config------------------##
#Password for Keystore admin user. exmaple:000000
DOMAIN_NAME=demo
ADMIN_PASS=000000
DEMO_PASS=000000
#Password for Mysql keystore user. exmaple:000000
KEYSTONE_DBPASS=000000
#--------------------Glance Config--------------------##
#Password for Mysql glance user. exmaple:000000
GLANCE_DBPASS=000000
#Password for Keystore glance user. exmaple:000000
GLANCE_PASS=000000
#--------------------Placement Config----------------------##
#Password for Mysql placement user. exmaple:000000
PLACEMENT_DBPASS=000000
#Password for Keystore placement user. exmaple:000000
PLACEMENT_PASS=000000
#--------------------Nova Config----------------------##
#Password for Mysql nova user. exmaple:000000
NOVA_DBPASS=000000
#Password for Keystore nova user. exmaple:000000
NOVA_PASS=000000
#--------------------Neutron Config-------------------##
#Password for Mysql neutron user. exmaple:000000
NEUTRON_DBPASS=000000
#Password for Keystore neutron user. exmaple:000000
NEUTRON_PASS=000000
#metadata secret for neutron. exmaple:000000
METADATA_SECRET=000000
#External Network Interface. example:eth1
INTERFACE_NAME=eth1 #填第二张网卡,记住不要使用正常通信的那张网卡
#External Network The Physical Adapter. example:provider
Physical_NAME=provider
#First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
minvlan=1
#Last Vlan ID in VLAN RANGE for VLAN Network. example:200
maxvlan=1000
#--------------------Cinder Config--------------------##
#Password for Mysql cinder user. exmaple:000000
CINDER_DBPASS=000000
#Password for Keystore cinder user. exmaple:000000
CINDER_PASS=000000
#Cinder Block Disk. example:md126p3
BLOCK_DISK=vdb1 #cinder服务挂载点,需在计算节点分区
#--------------------Swift Config---------------------##
#Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000
#The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=vdb2 #swift服务挂载点,需在计算节点分区
#The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=10.60.3.21
#--------------------Trove Config----------------------##
#Password for Mysql trove user. exmaple:000000
TROVE_DBPASS=000000
#Password for Keystore trove user. exmaple:000000
TROVE_PASS=000000
#--------------------Heat Config----------------------##
#Password for Mysql heat user. exmaple:000000
HEAT_DBPASS=000000
#Password for Keystore heat user. exmaple:000000
HEAT_PASS=000000
#--------------------Ceilometer Config----------------##
#Password for Gnocchi ceilometer user. exmaple:000000
CEILOMETER_DBPASS=000000
#Password for Keystore ceilometer user. exmaple:000000
CEILOMETER_PASS=000000
#--------------------AODH Config----------------##
#Password for Mysql AODH user. exmaple:000000
AODH_DBPASS=000000
#Password for Keystore AODH user. exmaple:000000
AODH_PASS=000000
#--------------------ZUN Config----------------##
#Password for Mysql ZUN user. exmaple:000000
ZUN_DBPASS=000000
#Password for Keystore ZUN user. exmaple:000000
ZUN_PASS=000000
#Password for Keystore KURYR user. exmaple:000000
KURYR_PASS=000000
#--------------------OCTAVIA Config----------------##
#Password for Mysql OCTAVIA user. exmaple:000000
OCTAVIA_DBPASS=000000
#Password for Keystore OCTAVIA user. exmaple:000000
OCTAVIA_PASS=000000
#--------------------Manila Config----------------##
#Password for Mysql Manila user. exmaple:000000
MANILA_DBPASS=000000
#Password for Keystore Manila user. exmaple:000000
MANILA_PASS=000000
#The NODE Object Disk for Manila. example:md126p5.
SHARE_DISK=vdb3 #文件共享服务的挂载点,需在计算节点分区
#--------------------Cloudkitty Config----------------##
#Password for Mysql Cloudkitty user. exmaple:000000
CLOUDKITTY_DBPASS=000000
#Password for Keystore Cloudkitty user. exmaple:000000
CLOUDKITTY_PASS=000000
#--------------------Barbican Config----------------##
#Password for Mysql Barbican user. exmaple:000000
BARBICAN_DBPASS=000000
#Password for Keystore Barbican user. exmaple:000000
BARBICAN_PASS=000000
###############################################################
#####鍦╲i缂栬緫鍣ㄤ腑鎵ц:%s/^.\{1\}// 鍒犻櫎姣忚鍓涓瓧绗#鍙#####
###############################################################
[root@controller ~]#
修改完使用scp命令远程传输给计算节点
[root@controller ~]# scp /etc/openstack/openrc.sh compute:/etc/openstack/openrc.sh
计算节点分区
此版本的openstack有manina文件共享服务,所以要多分一个区,还有一个坑就是云主机使用cinder挂载的硬盘启动后是会默认挂载在/mnt下面的,所以要分区是要先用umount取消挂载的。
注;此步骤也可以提前创建第四块分区,解决后面为cinder卷组扩容时再分区出现分区繁忙的问题,如果要把第四块盘创建为主分区,则需要在n后使用p指定为主分区,然后回车两下,指定大小+5G,w保存退出
[root@compute ~]# fdisk /dev/vdb
n
回车三下
+15G
n
回车三下
+15G
n
回车三下
+15G
w
[root@compute ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 100G 0 disk
鈹斺攢vda1 253:1 0 100G 0 part /
vdb 253:16 0 50G 0 disk
鈹溾攢vdb1 253:17 0 15G 0 part
鈹溾攢vdb2 253:18 0 15G 0 part
鈹斺攢vdb3 253:19 0 15G 0 part
[root@compute ~]#
脚本安装
只需要使用yum源安装好环境变量,以及/usr/local/bin下的服务安装脚本,计算节点分区,前期的准备工作就完成了
安装平台基本服务
此次比赛脚本是原装的,没有被修改,可以放心安装。需要注意的是安装方式一定要先把controller节点的服务安装完毕后,再执行compute节点的服务安装,切记切记!!!不然有的服务会出点问题
[root@controller ~]# iaas-pre-host.sh
[root@compute ~]# iaas-pre-host.sh
# 可同时执行,执行完毕后脚本会提示重启,不然rabbitmq服务会报错!!!此脚本会初始化虚拟机环境,如修改主机
名、主机映射、时间同步等,自己可去尝试解读脚本,手工搭建平台!!!!,由于重启可能导致平台出现问题可用ssh
连接自己的IP地址重新登陆,只要出现屏幕登录时间以及看到屏幕欢迎界面即可
[root@controller ~]# iaas-install-mysql.sh
[root@controller ~]# iaas-install-keystone.sh
[root@controller ~]# iaas-install-glance.sh
[root@controller ~]# iaas-install-placement.sh #此版本新加的脚本,搭配controller的nova服务
[root@controller ~]# iaas-install-nova-controller.sh
[root@controller ~]# iaas-install-neutron-controller.sh
[root@controller ~]# iaas-install-dashboard.sh
[root@controller ~]# iaas-install-cinder-controller.sh
[root@controller ~]# iaas-install-swift-controller.sh
# 执行完毕后,再往计算节点上安装服务
[root@compute ~]# iaas-install-nova-compute.sh
[root@compute ~]# iaas-install-neutron-compute.sh
[root@compute ~]# iaas-install-cinder-compute.sh
[root@compute ~]# iaas-install-swift-compute.sh
#注;执行脚本有可能出现环境变量为加载完毕导致改脚本内容搭建失败,是由于环境变量未完全加载,后面的脚本内容
便已经执行,此时就需要手动检查脚本跑完后该服务有没有起来,或者在执行脚本前,自己手动加载一下openrc.sh环境变量脚本
基础服务搭建完毕,后面涉及到的其他服务,可根据实际再具体安装