OpenStack(Queens)单机部署指南

KClouder

OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几
乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。
OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。
OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及
1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(IaaS)资源的通用前端。OpenStack
项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文希望通过提供必要的指导信息,帮助
大家利用OpenStack前端来设置及管理自己的公共云或私有云。

环境准备
在本次部署演示中,我们采用CentOS7来部署一个单节点的OpenStack。在单节点OpenStack安装中,它的所
有基本功能(如计算、网络、存储和仪表板)都安装在同一台机器上。这种安装方法也是概念验证(POC)的最佳
方法。

Hostname: openstack.kclouder.local
IP Address: 172.16.80.131 (固定IP,不要使用DHCP)

1,本次部署采用虚拟机的型式安装CentOS 7.6,配置4 vCPU,32G RAM,100G HDD,一个网络接口
(ens160)。开启虚拟机CPU的硬件虚拟化功能。

2,检查虚拟机支持CPU VT功能,返回值不为0表示支持。
egrep --color 'vmx|svm' /proc/cpuinfo | wc -l
3,更新系统
yum update -y
4,安装RDO源
yum install -y https://rdoproject.org/repos/rdo-release.rpm
5,关闭并禁用防火墙
systemctl disable firewalld
systemctl stop firewalld
6,关闭并禁用NetworkManager
systemctl disable NetworkManager
systemctl stop NetworkManager
systemctl enable network
systemctl start network
7,禁用SELINUX
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

开始安装
1,安装Packstack Installer
yum install -y openstack-packstack
2,生成OpenStack应答文件,如果使用默认的选项运行Packstack安装程序将设置Demo project和其他
一些不需要的东西。
packstack --gen-answer-file=/root/answer.txt
3,编辑应答文件,我们选择安装OpenStack时不安装Demo project。此外,还将创建一个名为“br-ex”的
OVS桥,用于通过名为“extnet”的逻辑段与实例(VM)进行外部连接。 修改配置文件以下选项:
vi answer.txt
CONFIG_PROVISION_DEMO=n # 不安装DEMO
CONFIG_KEYSTONE_ADMIN_PW=xxx # 设置管理员密码
CONFIG_HORIZON_SSL=y # 启用SSL访问
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=extnet:br-ex # OVS Bridge名称
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:ens160 # 接口名称
4,通过应答文件运行PackStack安装程序
packstack --answer-file=/root/answer.txt

5,安装完成后,提示信息如下,包括Dashboard访问地址,这里为https://172.16.80.131/dashboard

6,通过浏览器访问Dashboard,默认用户名为“admin”,密码为我们在应答文件中配置的密码,到这里
OpenStack基本安装已经完成。

7,创建一个新的OpenStack项目和用户
“身份管理” -- “项目” -- “创建项目”,项目名称“kclouder-cloud”

8,创建一个用户并将其分配给前面创建的项目
“身份管理” -- “用户” -- “创建用户” ,用户名“jacky”

配置网络
通过配置OpenStack网络可以允许从外部网络访问VM实例。
1,网络规划
Internal (VM) Network = 192.168.80.0/24
External Network = 172.16.0.0/16
Instances Floating IP Range = 192.168.80.200 – 192.168.80.253
Gateway of External Network = 172.16.0.1
2,我们在安装OpenStack时,已经通过应答文件配置了OVS桥,查看网站应该如下图

3,创建外部网络(External Network)
“管理员” -- “网络” -- “创建网络”,名称为“External_Network”,并关联前面创建的项目,供应商
网络类型选择“Flat”,物理网络“extnet”。同时勾选 “启用管理员状态”、“外部网络”、“创建子网”

4,配置子网名称为“External_Subnet”,网络地址“172.16.0.0/16”,网关为“172.16.0.1”。子网详情
保持默认,点击创建。

5,创建内部网络(Internal Network)
内部网络为VM实例分配IP地址,使用前面创建的用户“jacky”重新登录Dashboard
6,通过“项目” -- “网络” -- “创建网络”创建内部网络“Internal_Network”,勾选“启用管理员状态”
和 “创建子网”。

7,设置子网名称“Internal_Subnet”,网络地址“192.168.80.0/24”。子网详情保持默认,点击创建。

8,网络创建完成,分别是一个内部网络和一个外部网络

创建路由
路由将作为内部网络和外部网络之间的桥梁。
1,通过“项目” -- “网络” -- “路由” -- “新建路由” 创建一个路由名为“Router”,外部网络选择之前创
建的“External_Network”。

2,点击创建好的路由,转到接口选项卡,然后点击增加接口。现在,选择前面创建好的子网后,然后单击提
交。现在,路由器应该具有External_Network和Internal_Network的接口。

创建镜像及模板
1,创建OpenStack Image
部署OpenStack实例需要先创建虚拟机映像,OpenStack虚拟机映像是一个文件(QCOW2或Raw),其中包
含一个安装了操作系统的磁盘。 可通过以下链接选择下载OpenStack虚拟机映像文件。这里我们分别下载
两个QCOW2格式的映像,CentOS6和CentOS7。
OpenStack映像

2,映像下载完成后,以admin身份登录Dashboard。转到“管理员” -- “计算” -- “镜像”,点击“创建镜
像”,填写镜像名称,格式选择“QCOW2-QEMU模拟器”,然后点击“创建镜像”。

3,两个镜像添加完成后,如下图,这里CentOS6由admin创建,对所有项目开放,CentOS7由用户jacky创
建,只对Kclouder-cloud项目开放。

4,创建实例类型
实例类型可以使用OpenStack中自带的模板,也可以自由添加新模板。在“管理员” -- “计算” -- “实例
类型”中,点击“创建实例类型”。名称“custom.small”,VCPU数量=1,内存=1024MG,根磁盘=10G。

5,创建完成后如下图

创建安全组
OpenStack的安全组相当一个虚拟防火墙,用来控制实例的网络连接。例如通过创建安全组来允许或禁止
SSH、HTTP、HTTPS等连接。
1,以用户jacky登录Dashboard,来创建一个专门针对“Kclouder-cloud”项目的安全组。
2,通过“项目” -- “网络” -- “安全组”,点击“创建安全组”,名称为“Kclouder-cloud-Security”

3,创建完成后,点击该安全组的“管理规则”,然后点击“添加规则”,比如添加规则允许所有SSH访问

4,添加规则允许所有入站ICMP,也就是允许从外部网络PING实例IP地址

创建秘钥对
1,秘钥对是用于访问创建的实例的公钥。没有密钥对,我们无法访问实例。
2,通过“项目” -- “计算” -- “秘钥对”,点击“创建秘钥对”,名称为“Kclouder-cloud-key”
3,创建完成后,浏览器会自动提示下载秘钥文件Kclouder-cloud-key.pem

部署实例(Launch Instance)
1,转到“项目” -- “计算” -- “实例”,点击“创建实例”,填写实例名称为“C6”,数量为“1”
2,选择前面创建的CentOS6映像
3,实例类型选择前面创建的“custom.small”
4,网络选择“Internal_Network”
5,安全组选择“Kclouder-cloud-Security”
6,秘钥对选择“Kclouder-cloud-key”
7,点击“创建实例”,等待片刻,实例创建完成。
8,以相同方式使用CentOS7映像创建实例“C7”
9,实例创建完成后,点击右侧下拉菜单中的“绑定浮动IP地址”,为实例分配一个固定IP地址。

10,资源池选择“External_Network”,然后点击“分配IP”,然后点击“关联”。

11,通过以上操作,虚拟机实例已经具有外部访问的能力

12,通过“项目” -- “网络” -- “网络拓扑”查看当前网络拓扑如下图

验证虚拟机实例访问
到这里,OpenStack已经搭建完成,并且创建了两个具有外部网络访问能力的虚拟机实例。下面我们来验证是
否可以通过外部网络访问虚拟机实例,如果可以访问,说明前面的配置工作没有问题。
1,分别Ping路由网关和两个虚拟机实例的IP地址,如果可以Ping通,可以说明:
● 路由工作正常
● 浮动IP工作正常
● 安全组工作正常
● 虚拟机实例处于开机工作正常状态

2,验证SSH访问,SSH登录时,选择使用之前下载保存的PEM文件进行身份验证

3,确认虚拟机实例可以正常SSH登录

4,确认虚拟机实例之间以可以互相PING通,并可以访问外部网络。

5,查看OpenStack运行概况
通过“项目” -- “计算” -- “概况”,可以查看到部署的实例数量,CPU及内存使用情况,IP地址分配数
量等信息。

6,在OpenStack主机中查看磁盘使用情况,可以看到两个大小为10G的cinder--volume,就是我们部署的两
个虚拟机实例。

其它信息
1,查看OpenStack版本
cd /usr/lib/python2.7/site-packages/
ls -a |grep nova
openstack --version
可以看到nova版本为17.0.9,openstack client版本为3.14.3,然后通过下面的网址查询对应的版本,
通过对比,可以确定我们安装的版本是OpenStack的第17个发行版“Queens”。
https://releases.openstack.org/#teams

2,使用VMware虚拟机部署时,注意虚拟机网络需要开启“混杂模式”和“伪传输”。
3,OpenStack文档
https://docs.openstack.org/queens/

https://www.kclouder.cn/openstack-queens-singlenode/

Sent with Reeder