单实例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则进以下操作
若不能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
5,安装完成后,提示信息如下,包括Dashboard访问地址,这里为https://192.168.2.188/dashboard
6,修改网络接口配置文件
6.1.在开始创建仪表盘OpenStack的网络之前,我们首先需要创建一个OVS桥梁和修改我们的物理网络接口绑定为一个端口OVS桥梁。
因此,登录到您的服务器终端,导航到网络接口目录脚本,并使用物理接口作为摘录通过发出以下命令来设置OVS桥接接口
# cd /etc/sysconfig/network-scripts/
# ls
# cp ifcfg-ens33 ifcfg-br-ex
在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
如下如则为成功
7,通过浏览器访问Dashboard(https://192.168.2.188/dashboard),默认用户名为“admin”,密码为我们在应答文件中配置的密码,到这里
OpenStack基本安装已经完成。
8,创建一个新的OpenStack项目和用户
“身份管理” – “项目” – “创建项目”,项目名称“kclouder-cloud”
9,创建一个用户并将其分配给前面创建的项目
“身份管理” – “用户” – “创建用户” ,用户名“jacky”,主项目一定要选择刚创建的项目
配置网络
1,创建外部网络(External Network)
“管理员” – “网络” – “创建网络”,名称为“External_Network”,并关联前面创建的项目,供应商
网络类型选择“Flat”,物理网络“extnet”。同时勾选 “启用管理员状态”、“外部网络”、“创建子网”
2,配置子网名称为“External_Subnet”,网络地址“192.168.2.100/24”,网关为“192.168.2.2”。子网详情
保持默认,点击创建。
3,创建内部网络(Internal Network)
内部网络为VM实例分配IP地址,使用前面创建的用户“jacky”重新登录Dashboard
4,通过“项目” – “网络” – “创建网络”创建内部网络“Internal_Network”,勾选“启用管理员状态”
和 “创建子网”。
5,设置子网名称“Internal_Subnet”,网络地址“192.168.22.22/24”。子网详情保持默认,点击创建。
6,网络创建完成,分别是一个内部网络和一个外部网络
创建路由
路由将作为内部网络和外部网络之间的桥梁。
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由用户jacky创建,只对Kclouder-cloud项目开放。
4,创建实例类型
实例类型可以使用OpenStack中自带的模板,也可以自由添加新模板。在“管理员” – “计算” – “实例
类型”中,点击“创建实例类型”。名称“custom.small”,VCPU数量=1,内存=1024MG,根磁盘=10G。
创建安全组
OpenStack的安全组相当一个虚拟防火墙,用来控制实例的网络连接。例如通过创建安全组来允许或禁止
SSH、HTTP、HTTPS等连接。
1,以用户jacky登录Dashboard,来创建一个专门针对“Kclouder-cloud”项目的安全组。
2,通过“项目” – “网络” – “安全组”,点击“创建安全组”,名称为“Kclouder-cloud-Security”
3,创建完成后,点击该安全组的“管理规则”,然后点击“添加规则”,比如添加规则允许所有SSH访问
4,添加规则允许所有入站ICMP,也就是允许从外部网络PING实例IP地址
5,最后创建完如图
创建秘钥对
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,点击“创建实例”,等待片刻,实例创建完成。
9,实例创建完成后,点击右侧下拉菜单中的“绑定浮动IP地址”,为实例分配一个固定IP地址。
10,资源池选择“External_Network”,然后点击“分配IP”,然后点击“关联”。
11,通过以上操作,虚拟机实例已经具有外部访问的能力
12,通过“项目” – “网络” – “网络拓扑”查看当前网络拓扑如下图
验证虚拟机实例访问
到这里,OpenStack已经搭建完成,并且创建了1个具有外部网络访问能力的虚拟机实例。下面我们来验证是
否可以通过外部网络访问虚拟机实例,如果可以访问,说明前面的配置工作没有问题。
1,分别Ping路由网关和这个虚拟机实例的IP地址,如果可以Ping通,可以说明:
● 路由工作正常
● 浮动IP工作正常
● 安全组工作正常
● 虚拟机实例处于开机工作正常状态