OpenStack搭建(命令创建用户、镜像、网络等)+项目实训

目标
本项目主要帮助学生掌握搭建OpenStack云计算平台的环境设计及系统,包括硬件基本需求,OpenStack云计算平台所需的软件包,部署一个实际的OpenStack云计算平台拓扑结构,并在这个环境下系统安装
通过本实训,你将能够巩固如下知识:
掌握构建云计算平台的系统拓扑结构
掌握系统拓扑结构下的网络配置
掌握正确配置搭建云计算平台的安装基础工作
掌握如何创建网络服务
了解Keystone、Cinder、Swfit的基本概念及用法
理解云平台中的Cinder云硬盘服务
通过监控服务,实时查看平台的运行情况

目录
第一章 需求分析 4
1.1 公司的基本组织结构 4
1.2 应用需求情况 4
1.3 服务需求 4
第二章 云平台系统架构设计 5
2.1 拓扑设计 5
2.2 系统架构设计 5
第三章 项目实施 7
3.1制作设备清单表 7
3.2 分配IP地址 7
3.3搭建实训环境 8
3.4基础环境配置 8
3.4.1修改主机名 8
3.4.2修改网络 8
3.4.3配置域名解析 10
3.4.4关闭防火墙及配置 10
3.4.5 更改安全策略 10
3.4.6挂载及yum配置 10
3.4.7 安装vsftpd服务 11
3.4.8部署脚本安装平台 11
3.5 Keystone安全认真服务配置 14
3.6 Neutron 网络服务配置 19
3.7 Glance 镜像服务配置 22
3.8 Nova 计算控制服务配置 23
3.9 Dashboard 图形界面安装 24
3.10 Cinder 块存储控制服务配置 25
3.11 Swift 对象存储控制服务配置 27
3.12 heat编排服务配置 28
3.13云主机 28
文献 30
(1) OpenStack官网 30
(2) OpenStack开源中国区 30

第一章 需求分析
经过调研,分析公司的基本情况如下:
1.1 公司的基本组织结构
内部有100名员工,其中50名为项目研发部(研发环境),45名为业务部(办公环境),3人IT工程部(运维环境)。
1.2 应用需求情况
按员工的办公情况不同,分别使用Centos7.2、Ubuntu、Windows7和Windows Server镜像作为办公使用;根据云存储特点,将镜像资源云硬盘存储于Swift内部,提升镜像的安全性;编写批量模板文件,可以短期快速部署集群;构建内部块存储和卷存储实现实例扩容和公司内部资源存储;根据企业员工的构成比例构建四种办公网络和四个租户组,保证单位内部资源隔离和资料安全;使用监控系统可以查看运行情况保证系统的正常稳定的运行,以及监测硬件平台的稳定。
1.3 服务需求
构建3个用户租户,100个用户,管理人员拥有管理员权限,其余人员拥有普通用户权限
构建4种不同类别镜像,镜像后端存储为Swift,满足企业正常的办公需求
构建云硬盘服务,保证资源的安全
创建3个用户租户网络,满足正常的办公需求
编写模板文件,定制云主机特性
运行监控系统,查看系统运行情况

第二章 云平台系统架构设计

根据收集到的资料进行需求分析,规划网络拓扑如下图所示。服务器管理网络192.168.20.0/24,外部网段192.168.120.0/24,实例私有网络172.16.20.0/24。
网络拓扑如3.1。
基于需求分析,依据OpenStack架构指南要求,构建一个通用性云平台,遵循IAAS模式,基于简单的需求为用户寻求最合适的平台。
2.1 拓扑设计
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第1张图片

2.2 系统架构设计
根据设计的系统拓扑结构,将平台服务器做了拆分。控制节点(controller)安装如下服务:信息服务(QPID)、数据库服务(MySQL)、认证服务(Keystone)、镜像服务(Glance)、计算控制服务(Nova)、网络控制服务(Neutron)、控制台服务(Horizon)、块存储服务(Cinder)、对象存储服务(Swift)、编排服务(Heat)和监控服务(Ceilometer)。
计算节点(compute)安装如下服务:计算服务(Nova Compute)、网络控制服务(Neutron)、和监控服务(Ceilometer Compute)。

OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第2张图片

第三章 项目实施
120用户,每个用户2核CPU,内存4G,硬盘200G
CPU:1202=240核 CPU=240/64=5
内存:120
4=480G
硬盘:120*200=24000G=24T
表3-1设备清单表
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第3张图片

3.2 分配IP地址

服务器管理网络192.168.20.0/24,外部网段192.168.120.0/24,实例私有网络172.16.20.0/24。

表3-2 IP分配地址表
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第4张图片

3.3搭建实训环境
根据虚拟机网络环境,制作网络拓扑图。要求标出网络设备的虚拟机名称。网卡IP地址、网卡类型(物理网卡还是虚拟网卡),并给出网络环境清单。
表3-3实训设备清单表
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第5张图片

3.4基础环境配置
3.4.1修改主机名
[root@localhost ~]# hostnamectl set-hostname controller01
[root@localhost ~]# bash
[root@controller01 ~]#
[root@localhost ~]# hostnamectl set-hostname compute01
[root@localhost ~]# bash
[root@compute01 ~]#

3.4.2修改网络
控制节点:
[root@localhost network-scripts]# vi ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=6cbc9c39-7535-4e05-b2d4-7df4a8ec8da9
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.20.10
NETMASK=255.255.255.0
[root@controoler01 network-scripts]#systemctl restart network
计算节点:
[root@localhost network-scripts]# vi ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=16bfe25f-4640-4ef6-9b4d-373728a155b0
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.20.20
NETMASK=255.255.255.0
[root@compute01 network-scripts]#systemctl restart network

3.4.3配置域名解析
两台都需要配置哦!
在这里插入图片描述

在这里插入图片描述

3.4.4关闭防火墙及配置
在这里插入图片描述

3.4.5 更改安全策略
[root@controller01 ~]#vi /etc/selinux/config
SELINUX=permissive
[root@controller 01~]# getenforce 0
[root@controller 01~]#setenforce
Permissive

3.4.6挂载及yum配置
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第6张图片
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第7张图片
[root@controller01 yum.repos.d]# yum clean all
[root@controller01 yum.repos.d]# yum makecache

3.4.7 安装vsftpd服务
[root@controller01 ~]# yum install -y vsftpd
[root@controller 01~]#vi /etc/vsftp/vsftpd.conf
anon_root=/opt/
[root@controller 01~]#systemctl restart network

3.4.8部署脚本安装平台
[root@controller01 ~]# yum -y install iaas-xiandian
[root@controller01 xiandian]# cat openrc.sh
##--------------------system Config--------------------##
##Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.20.10
##Controller Server hostname. example:controller
HOST_NAME=controller01
##Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.20.20
##Compute Node hostname. example:compute
HOST_NAME_NODE=compute01
##--------------------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
##--------------------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
##External Network Interface. example:eth1
INTERFACE_NAME=eno33554984
##First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
minvlan=
##Last Vlan ID in VLAN RANGE for VLAN Network. example:200
maxvlan=
##--------------------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=sdb
##--------------------Trove Config--------------------##
##Password for Mysql Trove User. exmaple:000000
TROVE_DBPASS=000000
##Password for Keystore Trove User. exmaple:000000
TROVE_PASS=000000
##--------------------Swift Config---------------------##
##Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000
##The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=sdb
##The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=192.168.20.10
##--------------------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 Mysql 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

[root@controller01 bin]# iaas-pre-host.sh
[root@controller01 bin]#reboot

3.5 Keystone安全认真服务配置

[root@controller01 bin]# iaas-install-keystone.sh
[root@controller01 ~]# source /etc/keystone/admin-openrc.sh
[root@controller ~]# openstack project create --domain demo ITgcb
[root@controller ~]# openstack project create --domain demo yfb
[root@controller ~]# openstack project create --domain demo ywb
openstack user create --project ITgcb --domain demo user01
openstack user create --project ITgcb --domain demo user02
openstack user create --project ITgcb --domain demo user03
openstack user create --project yfb --domain demo user04
openstack user create --project yfb --domain demo user05
openstack user create --project yfb --domain demo user06
openstack user create --project ywb --domain demo user07
openstack user create --project ywb --domain demo user08
openstack user create --project ywb --domain demo user09
openstack user create --project ywb --domain demo user10
[root@controller ~]# openstack user list
±---------------------------------±--------+
| ID | Name |
±---------------------------------±--------+
| 15a41f574150409bb1a54761a7a99dac | user05 |
| 2ffd6096ec084fa69f8dc07b74930e3d | user09 |
| 38e392e6fcc146599de101fb8786eafe | user01 |
| 3f19a861234442c4a3d29078306bdd10 | user03 |
| 4e6c4972ce86459e98ba02efdc946f23 | user07 |
| 5a7f06487e2e4006a86966c416da0d2d | user08 |
| 7c03b411dc424db0beecbdf773543340 | user02 |
| 7c4418ebcb86420e943f8af19efd6973 | user10 |
| 80dcab8cf16643a19b523e14ff233230 | admin |
| c33a5bf1636640909eaa0143fa636cb5 | nova |
| c700bb4f4b84497f96672c4fed1267c7 | user06 |
| d1966aaad09c41b6b7866d324fbcd816 | user04 |
±---------------------------------±--------+
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第8张图片
图3.5-2 创建用户测试
研发部
[root@controller ~]# openstack group create --description 研发部 --domain demo yfb
±------------±---------------------------------+
| Field | Value |
±------------±---------------------------------+
| description | 研发部 |
| domain_id | 3d56a9ff818046a98774f70896ed2204 |
| id | ad312998dafa4bdfacd6b0eee30c161f |
| name | yfb |
±------------±---------------------------------+
[root@controller ~]# openstack group create --description 业务部 --domain demo ywb
±------------±---------------------------------+
| Field | Value |
±------------±---------------------------------+
| description | 业务部 |
| domain_id | 3d56a9ff818046a98774f70896ed2204 |
| id | 04e614235bd443da891c754dd21b1f0a |
| name | ywb |
±------------±---------------------------------+
[root@controller ~]# openstack group create --description IT工程部 --domain demo ITgcb
±------------±---------------------------------+
| Field | Value |
±------------±---------------------------------+
| description | IT工程部 |
| domain_id | 3d56a9ff818046a98774f70896ed2204 |
| id | 5cd2c24ae7ab40ceb5b8a82b90cb2a70 |
| name | ITgcb |
±------------±---------------------------------+

OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第9张图片
图3.5-2 创建用户组测试

[root@controller ~]# openstack group add user ITgcb user01
[root@controller ~]# openstack group add user ITgcb user02
[root@controller ~]# openstack group add user ITgcb user03
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第10张图片
图3.5-3 ITgcb组添加用户测试

[root@controller ~]# openstack group add user ywb user04
[root@controller ~]# openstack group add user ywb user05
[root@controller ~]# openstack group add user ywb user06
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第11张图片

图3.5-4 ywb组添加用户测试

[root@controller ~]# openstack group add user yfb user07
[root@controller ~]# openstack group add user yfb user08
[root@controller ~]# openstack group add user yfb user09
[root@controller ~]# openstack group add user yfb user10
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第12张图片
图3.5-5 yfb组添加用户测试

IT工程部成员给予admin权限
[root@controller ~]# openstack role add --group ITgcb admin
[root@controller ~]# openstack role add --user user01 admin
[root@controller ~]# openstack role add --user user02 admin
[root@controller ~]# openstack role add --user user03 admin
研发部成员给与user权限
[root@controller ~]# openstack role add --group ywb user
[root@controller ~]# openstack role add --user user04 user
[root@controller ~]# openstack role add --user user05 user
[root@controller ~]# openstack role add --user user06 user
业务部成员给与user权限
[root@controller ~]# openstack role add --user user07 user
[root@controller ~]# openstack role add --user user08 user
[root@controller ~]# openstack role add --user user09 user
[root@controller ~]# openstack role add --user use.xfs -i size=1024 -f /dev/$OBJECT_DISK

3.6 Neutron 网络服务配置

[root@controller01 bin]# iaas-install-neutron-contorller.sh
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第13张图片图3.6-1 创建实例通信网络

OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第14张图片
图3.6-2 实例通信网络创建子网

OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第15张图片
图3.6-3 创建内部管理网络

OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第16张图片
图3.6-4 内部管理网络创建子网

OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第17张图片
图3.6-5 创建路由 连接内网外网

OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第18张图片
图3.6-6 网络测试

3.7 Glance 镜像服务配置

[root@controller01 bin]# iaas-install-glance.sh
[root@controller01 ~]# source /etc/keystone/admin-openrc.sh
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第19张图片
图3.7-1 上传镜像cirros0.3.1

OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第20张图片
图3.7-2 上传镜像Centos7.2

OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第21张图片
图3.7-3 上传镜像测试图

3.8 Nova 计算控制服务配置

[root@controller01 bin]# iaas-install-nova-controller01.sh
[root@controller01 bin]# iaas-install-nova-compute01.sh
[root@controller01 ~]# source /etc/keystone/admin-openrc.sh
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第22张图片
图3.8-1 创建云主机类型

OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第23张图片
图3.8-2 创建安全组

OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第24张图片
图3.8-3 yun3181添加TCMP、TCP、UDP规则

3.9 Dashboard 图形界面安装

[root@controller bin]# iaas-install-dashboard.sh
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第25张图片
图3.9-1 dashboard图形界面测试

3.10 Cinder 块存储控制服务配置

[root@controller bin]# iaas-install-cinder-controller.sh
[root@controller bin]# iaas-install-cinder-compute.sh
[root@controller bin]# source /etc/keystone/admin-openrc.sh
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第26张图片
图3.10-1 创建类型

OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第27张图片
图3.10-2 创建云硬盘

OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第28张图片
图3.10-3云硬盘连接

OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第29张图片
图3.10-3 块存储服务测试

3.11 Swift 对象存储控制服务配置
[root@controller ~]#iaas-install-swift-controller.sh
[root@controller ~]#iaas-install-swift-compute.sh
[root@controller ~]#source /etc/keystone/admin-openrc.sh
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第30张图片
图3.11-1 创建对象存储容器并上传文件test.txt

OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第31张图片
图3.11-2 上传镜像到容器container02

OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第32张图片
图3.11-3 对象存储服务测试图

3.12 heat编排服务配置
[root@controller bin]# iaas-install-heat.sh
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第33张图片
图3.12-1 编排示意图

3.13云主机
[root@controller ~]# nova boot --flavor myflavor --image cirros0.3.1 --security-group sec-yun3181 --nic net-name=int-net test01
[root@controller ~]#neutron floatingip-create ext-net
[root@controller ~]#nova floating-ip-associate 192.168.120.102
OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第34张图片
图3.13-1 创建云主机

OpenStack搭建(命令创建用户、镜像、网络等)+项目实训_第35张图片
图3.13-2 云主机连接CRT
由于电脑配置原因,只能做一台计算结点,如果环境允许,可以多做几台计算结点。

文献
(1)OpenStack官网
http://www.openstack.org
https://wiki.openstack.org/wiki/main_page
(2)OpenStack开源中国区
http://www.oschina.net/question/tag/openstack

你可能感兴趣的:(云计算)