单实例openstack安装测试亲测可用(基于centos7)

环境准备

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

Hostname: openstack.kclouder.local
IP Address: 192.168.2.188

1,本次部署采用虚拟机的型式安装CentOS 7.6,配置2 vCPU,8 RAM,100G HDD,一个网络接口
(ens33)。开启虚拟机CPU的硬件虚拟化功能。(首先检查外网是否能ping通)

若能ping通www.baidu.com则进以下操作

openstack单节点部署网络设置 openstack单节点安装_openstack单节点部署网络设置

若不能ping通则参考以下博客进行解决,解决后继续操作https://jingyan.baidu.com/article/363872ec796dfc6e4ba16f09.html

2,检查虚拟机支持CPU VT功能,返回值不为0表示支持。(为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

openstack单节点部署网络设置 openstack单节点安装_IP_02


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

openstack单节点部署网络设置 openstack单节点安装_linux_03


6,修改网络接口配置文件

6.1.在开始创建仪表盘OpenStack的网络之前,我们首先需要创建一个OVS桥梁和修改我们的物理网络接口绑定为一个端口OVS桥梁。

因此,登录到您的服务器终端,导航到网络接口目录脚本,并使用物理接口作为摘录通过发出以下命令来设置OVS桥接接口

# cd /etc/sysconfig/network-scripts/
# ls  
# cp ifcfg-ens33 ifcfg-br-ex

openstack单节点部署网络设置 openstack单节点安装_网络_04


在OpenStack中设置OVS Bridge接口

6.2.接下来,编辑和修改使用文本编辑器的桥接口(BR-EX),如下图所示:

# vi ifcfg-br-ex

接口BR-EX摘录:

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="no"
IPV6_AUTOCONF="no"
IPV6_DEFROUTE="no"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="no"
NAME="br-ex"
UUID="0da02f41-89f9-43fd-b2a9-7de6d89165e3"
DEVICE="br-ex"
ONBOOT="yes"
IPADDR="192.168.2.188"
PREFIX="24"
GATEWAY="192.168.2.1"
DNS1="8.8.8.8"
IPV6_PRIVACY="no"

为OpenStack配置网桥接口

6.3.执行与物理接口(ens33)是相同的,但要确保它看起来是这样的:

vi ifcfg-ens33

接口ens33摘录:

TPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
NAME=ens33
DEVICE=ens33
ONBOOT=yes
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
IPV6_PRIVACY=no

为OpenStack配置物理网络接口

重要提示 :当编辑界面卡,请确保您更换相应的物理接口的名称,IP地址和DNS服务器。

6.4.,最后你修改编辑的两个网络接口后,重新启动网络守护进程,以反映变化,并使用验证新配置ip命令 。

# systemctl restart network.service
# ifconfig

如下如则为成功

openstack单节点部署网络设置 openstack单节点安装_openstack单节点部署网络设置_05


7,通过浏览器访问Dashboard(https://192.168.2.188/dashboard),默认用户名为“admin”,密码为我们在应答文件中配置的密码,到这里

OpenStack基本安装已经完成。

openstack单节点部署网络设置 openstack单节点安装_openstack单节点部署网络设置_06


8,创建一个新的OpenStack项目和用户

“身份管理” – “项目” – “创建项目”,项目名称“kclouder-cloud”

openstack单节点部署网络设置 openstack单节点安装_IP_07

9,创建一个用户并将其分配给前面创建的项目

“身份管理” – “用户” – “创建用户” ,用户名“jacky”,主项目一定要选择刚创建的项目

openstack单节点部署网络设置 openstack单节点安装_网络_08

配置网络

1,创建外部网络(External Network)

“管理员” – “网络” – “创建网络”,名称为“External_Network”,并关联前面创建的项目,供应商

网络类型选择“Flat”,物理网络“extnet”。同时勾选 “启用管理员状态”、“外部网络”、“创建子网”

openstack单节点部署网络设置 openstack单节点安装_openstack单节点部署网络设置_09


2,配置子网名称为“External_Subnet”,网络地址“192.168.2.100/24”,网关为“192.168.2.2”。子网详情

保持默认,点击创建。

openstack单节点部署网络设置 openstack单节点安装_openstack单节点部署网络设置_10


3,创建内部网络(Internal Network)

内部网络为VM实例分配IP地址,使用前面创建的用户“jacky”重新登录Dashboard

4,通过“项目” – “网络” – “创建网络”创建内部网络“Internal_Network”,勾选“启用管理员状态”

和 “创建子网”。

openstack单节点部署网络设置 openstack单节点安装_IP_11


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

openstack单节点部署网络设置 openstack单节点安装_linux_12


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

openstack单节点部署网络设置 openstack单节点安装_IP_13

创建路由

路由将作为内部网络和外部网络之间的桥梁。

1,通过“项目” – “网络” – “路由” – “新建路由” 创建一个路由名为“Router”,外部网络选择之前创

建的“External_Network”。

openstack单节点部署网络设置 openstack单节点安装_openstack单节点部署网络设置_14


2,点击创建好的路由,转到接口选项卡,然后点击增加接口。现在,选择前面创建好的子网后,然后单击提

交。现在,路由器应该具有External_Network和Internal_Network的接口。

openstack单节点部署网络设置 openstack单节点安装_openstack单节点部署网络设置_15


openstack单节点部署网络设置 openstack单节点安装_linux_16


openstack单节点部署网络设置 openstack单节点安装_openstack单节点部署网络设置_17

创建镜像及模板

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

2,映像下载完成后,以admin身份登录Dashboard。转到“管理员” – “计算” – “镜像”,点击“创建镜

像”,填写镜像名称,格式选择“QCOW2-QEMU模拟器”,然后点击“创建镜像”。

openstack单节点部署网络设置 openstack单节点安装_openstack单节点部署网络设置_18


3,CentOS6由用户jacky创建,只对Kclouder-cloud项目开放。4,创建实例类型

实例类型可以使用OpenStack中自带的模板,也可以自由添加新模板。在“管理员” – “计算” – “实例

类型”中,点击“创建实例类型”。名称“custom.small”,VCPU数量=1,内存=1024MG,根磁盘=10G。

openstack单节点部署网络设置 openstack单节点安装_网络_19

创建安全组

OpenStack的安全组相当一个虚拟防火墙,用来控制实例的网络连接。例如通过创建安全组来允许或禁止

SSH、HTTP、HTTPS等连接。

1,以用户jacky登录Dashboard,来创建一个专门针对“Kclouder-cloud”项目的安全组。

2,通过“项目” – “网络” – “安全组”,点击“创建安全组”,名称为“Kclouder-cloud-Security”

openstack单节点部署网络设置 openstack单节点安装_openstack_20


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

openstack单节点部署网络设置 openstack单节点安装_openstack单节点部署网络设置_21


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

openstack单节点部署网络设置 openstack单节点安装_IP_22


5,最后创建完如图

openstack单节点部署网络设置 openstack单节点安装_openstack单节点部署网络设置_23

创建秘钥对

1,秘钥对是用于访问创建的实例的公钥。没有密钥对,我们无法访问实例。

2,通过“项目” – “计算” – “秘钥对”,点击“创建秘钥对”,名称为“Kclouder-cloud-key”

3,创建完成后,浏览器会自动提示下载秘钥文件Kclouder-cloud-key.pem

openstack单节点部署网络设置 openstack单节点安装_IP_24

部署实例(Launch Instance)

1,转到“项目” – “计算” – “实例”,点击“创建实例”,填写实例名称为“C6”,数量为“1”

2,选择前面创建的CentOS6映像

3,实例类型选择前面创建的“custom.small”

4,网络选择“Internal_Network”

5,安全组选择“Kclouder-cloud-Security”

6,秘钥对选择“Kclouder-cloud-key”

7,点击“创建实例”,等待片刻,实例创建完成。

9,实例创建完成后,点击右侧下拉菜单中的“绑定浮动IP地址”,为实例分配一个固定IP地址。

openstack单节点部署网络设置 openstack单节点安装_openstack单节点部署网络设置_25


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

openstack单节点部署网络设置 openstack单节点安装_openstack单节点部署网络设置_26


openstack单节点部署网络设置 openstack单节点安装_openstack_27


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

openstack单节点部署网络设置 openstack单节点安装_网络_28


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

openstack单节点部署网络设置 openstack单节点安装_openstack单节点部署网络设置_29

验证虚拟机实例访问

到这里,OpenStack已经搭建完成,并且创建了1个具有外部网络访问能力的虚拟机实例。下面我们来验证是

否可以通过外部网络访问虚拟机实例,如果可以访问,说明前面的配置工作没有问题。

1,分别Ping路由网关和这个虚拟机实例的IP地址,如果可以Ping通,可以说明:

● 路由工作正常

● 浮动IP工作正常

● 安全组工作正常

● 虚拟机实例处于开机工作正常状态

openstack单节点部署网络设置 openstack单节点安装_openstack单节点部署网络设置_30


openstack单节点部署网络设置 openstack单节点安装_网络_31