实验环境
- 底层操作系统镜像:CentOS Linux release 7.5.1804 (Core)
- 云平台镜像:chinaskills_cloud_iaas.iso
- 搭建方式:需要两台服务器,1台作为控制节点,1台作为计算机节点,2台服务器来维持云平台的运作
服务器要求
网络环境

性能要求
Controller
Compute
两台服务器cpu均已开启虚拟化功能
搭建流程
Controller控制节点 |
Compute计算节点 |
Keystone安全认证服务 | |
Glance镜像服务 | |
Nova计算控制服务 | Nova Compute计算服务 |
Dashboard管理界面 | |
Neutron Server网络服务 | Neutron节点网络服务 |
Cinder存储控制服务 | Cinder Volume存储控制服务 |
Rabbit消息服务 | |
Mysql数据库 | |
Swift 代理服务 | Swift 代理服务 |
Heat编配服务 | |
Ceilometer监控服务 | Ceilometer监控代理 |
准备工作
在Controller节点配置
镜像文件准备
首先将镜像包文件都上传至服务器内
镜像挂载
[root@controller ~]# mkdir -p /opt/{centos,iaas-repo,images} [root@controller ~]# chmod -R 777 /opt/ [root@controller ~]# mount -o loop CentOS-7-x86_64-DVD-1804.iso /opt/centos/ [root@controller ~]# mount -o loop chinaskills_cloud_iaas.iso /opt/iaas-repo/
准备云平台qcow2的镜像,存放至images文件夹
配置yum源
[root@controller ~]# rm -rf /etc/yum.repos.d/* [root@controller ~]# vi /etc/yum.repos.d/local.repo [centos] name=centos baseurl=file:///opt/centos gpgcheck=0 enable=1 [iaas] name=iaas baseurl=file:///opt/iaas-repo gpgcheck=0 enable= :wq 保存退出
重新载入yunm缓存
[root@controller ~]# yum clean all [root@controller ~]# yum makecache
搭建vsftp
将本机的/opt资源共享给compute节点
[root@controller ~]# yum -y install vsftpd
配置为匿名访问,设置路径
[root@controller ~]# vi /etc/vsftpd/vsftpd.conf
保存退出
[root@controller ~]# systemctl restart vsftpd
在Compute节点配置
配置yum源
[root@compute ~]# rm -rf /etc/yum.repos.d/* [root@compute ~]# vi /etc/yum.repos.d/ftp.repo [centos] name=centos baseurl=ftp://172.16.45.10/centos gpgcheck=0 enable=1 [iaas] name=iaas baseurl=ftp://172.16.45.10/iaas-repo gpgcheck=0 enable=1 :wq
重新载入缓存
[root@compute ~]# yum clean all [root@compute ~]# yum makecache
分配磁盘
将空白空间进行划分提供给cinder和swift使用
[root@compute ~]# parted /dev/sdb (parted) mkpart swift 0G 100G (parted) mkpart cinder 100G 200G (parted) quit [root@compute ~]# mkfs.xfs /dev/sdb1 [root@compute ~]# mkfs.xfs /dev/sdb2
编辑环境变量
controller服务器配置
[root@controller ~]# yum install -y iaas-xiandian [root@controller ~]# vi /etc/xiandian/openrc.sh 一键去注释 ctrl+v选中所有行,按d 设置密码都为000000 :%s/PASS=/PASS=000000/g :wq 保存退出 [root@controller ~]# cat /etc/xiandian/openrc.sh
[root@controller ~]# cat /etc/xiandian/openrc.sh #--------------------system Config--------------------## #Controller Server Manager IP. example:x.x.x.x HOST_IP=172.16.45.10 #Controller HOST Password. example:000000 HOST_PASS=000000 #Controller Server hostname. example:controller HOST_NAME=controller #Compute Node Manager IP. example:x.x.x.x HOST_IP_NODE=172.16.45.20 #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=172.16.45.0/24 #--------------------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=admin 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 #--------------------Nova Config----------------------## #Password for Mysql nova user. exmaple:000000 NOVA_DBPASS=000000 #Password for Keystore nova user. exmaple:000000 NOVA_PASS=000000 #--------------------Neturon 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 #Tunnel Network Interface. example:x.x.x.x INTERFACE_IP=172.16.45.10 #External Network Interface. example:eth1 INTERFACE_NAME=ens34 #External Network The Physical Adapter. example:provider Physical_NAME=provider #First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101 minvlan=101 #Last Vlan ID in VLAN RANGE for VLAN Network. example:200 maxvlan=200 #--------------------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=sdb1 #--------------------Swift Config---------------------## #Password for Keystore swift user. exmaple:000000 SWIFT_PASS=000000 #The NODE Object Disk for Swift. example:md126p4. OBJECT_DISK=sdb2 #The NODE IP for Swift Storage Network. example:x.x.x.x. STORAGE_LOCAL_NET_IP=172.16.45.20 #--------------------Heat Config----------------------## #Password for Mysql heat user. exmaple:000000 HEAT_DBPASS=000000 #Password for Keystore heat user. exmaple:000000 HEAT_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 Mysql Kuryr user. exmaple:000000 KURYR_DBPASS=000000 #Password for Keystore Kuryr user. exmaple:000000 KURYR_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 #--------------------Barbican Config----------------## #Password for Mysql Barbican user. exmaple:000000 BARBICAN_DBPASS=000000 #Password for Keystore Barbican user. exmaple:000000 BARBICAN_PASS=000000
compute节点配置
[root@compute ~]# yum install -y iaas-xiandian
为了方便可以将controller节点处已经配置完成好的openrc.sh传输过来进行细微修改即可
[root@controller ~]# scp /etc/xiandian/openrc.sh compute:/etc/xiandian/openrc.sh 找到下列选项修改一条即可
[root@compute ~]# vi /etc/xiandian/openrc.sh #Tunnel Network Interface. example:x.x.x.x INTERFACE_IP=172.16.45.20 :wq 保存退出
安装服务
1.通过脚步安装服务
controller
[root@controller ~]# iaas-pre-host.sh [root@controller ~]# reboot
compute
[root@compute ~]# iaas-pre-host.sh [root@compute ~]# reboot
2.安装mysql数据库
controller
[root@controller ~]# iaas-install-mysql.sh
compute
[root@compute ~]# yum -y install MySQL-python 注意大小写!!
3.安装keystone服务
controller
[root@controller ~]# iaas-install-keystone.sh
4.安装glance服务
controller
[root@controller ~]# iaas-install-glance.sh
上传镜像检查服务是否成功
[root@controller /]# cd /opt/images/ [root@controller images]# source /etc/keystone/admin-openrc.sh [root@controller images]# glance image-create --name "centos7.5" --disk-format qcow2 --container-format bare --progress < CentOS_7.5_x86_64_XD.qcow2 [root@controller images]# glance image-create --name "centos6.5" --disk-format qcow2 --container-format bare --progress < CentOS_6.5_x86_64_XD.qcow2
上传了2个镜像,下面运行指令查看是否成功添加进去
[root@controller images]# glance image-list
[root@controller images]# openstack image list
成功
5.安装nova服务
controller
[root@controller ~]# iaas-install-nova-controller.sh
compute
[root@compute ~]# iaas-install-nova-compute.sh
6.安装neutron服务
controller
[root@controller ~]# iaas-install-neutron-controller.sh
compute
[root@compute ~]# iaas-install-neutron-compute.sh
7.安装dashboard服务
controller
[root@controller ~]# iaas-install-dashboard.sh
8.安装Cinder服务
controller
[root@controller ~]# iaas-install-cinder-controller.sh
compute
[root@compute ~]# iaas-install-cinder-compute.sh
9.安装Swift服务
controller
[root@controller ~]# iaas-install-swift-controller.sh
compute
[root@compute ~]# iaas-install-swift-compute.sh
10.安装heat服务
controller
[root@controller ~]# iaas-install-heat.sh
11.安装Zun服务
controller
[root@controller ~]# iaas-install-zun-controller.sh
compute
[root@compute ~]# iaas-install-zun-compute.sh
12.安装Ceilometer服务
controller
[root@controller ~]# iaas-install-ceilometer-controller.sh
compute
[root@compute ~]# iaas-install-ceilometer-compute.sh
13.安装Aodh服务
controller
[root@controller ~]# iaas-install-aodh.sh
添加控制节点资源到云平台
controller
[root@controller ~]# vi /etc/xiandian/openrc.sh
把compute节点的IP地址和主机名改为controller节点的IP和主机名
:wq 保存退出
[root@controller ~]# iaas-install-nova-compute.sh
执行过程中需要输入controller节点root用户密码
登录云平台web页面
访问网址为http://172.16.45.10/dashboard
登录
账号为: admin 密码为: 000000
账号密码的定义为openrc.sh中Keystone Config区域
概览中可看到云平台的基本参数
云主机构建流程
修改引导
创建之前需要修改引导方式,不然云主机会进不去系统
controller
[root@controller ~]# vi /etc/nova/nova.conf
添加
:wq 保存退出
[root@controller ~]# systemctl restart openstack-nova-*
compute
做一样的配置,文章不再概述
创建网络
选择到管理员-网络-网络选项
点击右上角创建网络,因为是虚拟机创建的所以供应商选择Flat,物理网络填入provider
下一项
下一项,输入地址池,点击创建
创建云主机类型
点击选择管理员—云主机类型—创建云主机类型
因为是打算创建一台Centos7.5所以配置要求不用太高
点击右下角创建
创建云主机
选择项目—资源管理—云主机—创建主机
第一步,填写相关信息
选择Centos7.5的镜像点击上箭头的按钮
选择刚刚创建的云主机类型,点击下一项
网络也是一样
点击安全组(类似防火墙),将系统默认的添加上去
最后点击创建实例,等待一段时间即可自动创建完成
控制云主机
有2种方法在web上面控制云主机
第一种,直接点击云主机名称
随后点击控制台,即可网页控制云主机
第二种,网络拓扑图
个人比较偏好这一种
选择项目—网络—网络拓扑—点击云主机
即可出现小窗控制云主机,方便,不会出现打不了字的bug