10分钟安装OpenStack

Contents [hide]

OpenStack初学者的苦恼

OpenStack由一套组件构成,安装门槛非常高。虽然有DevStack/RDO/Puppet/Chef/Salt这些自动化安装工具,但这些工具只是方便了熟悉OpenStack的工程师,很多初学者仍然倍受安装门槛的折磨。

为了降低OpenStack学习曲线,我们制作了DevStack镜像,只需要一键执行,就可以安装最新的OpenStack,然后你就可以开始尽情研究OpenStack了,让你信心满满。

OpenStack最低配置要求

OpenStack需要管理网络和虚拟机网络,所以推荐使用双网卡,下面是安装OpenStack的环境要求:

  • 操作系统: Ubuntu/CentOS
  • 内存: 4GB
  • 硬盘: 20GB
  • 网络: 双网卡

在进行安装OpenStack之前,你在UOS得有一个账号,现在注册就送10元钱,足够你体验一天了。

配置UOS环境

为了满足OpenStack安装的最低要求,我们需要配置双网卡环境,主要步骤是:

设置网络

创建路由器

创建一个路由器,命名为 dev-route,并开启公网网关。

创建网络

创建一个私有网络,命名为 dev-network。

创建两个子网

创建第1个子网,命名为 public-subnet,选择 dev-network 私有网络,设置网络地址为 192.168.0.0/24。

创建第2个子网,命名为 flat-subnet,选择 dev-network 私有网络,设置网络地址为 172.16.0.0/24。

设置第1个子网 public-subnet 与路由器 dev-route 相关联。

创建UOS虚拟机

创建一台虚拟机(使用 DevStack 镜像),叫做 ustack, 使用“4核CPU,8GB内存”配置,选择私有网络 public-subnet (虚拟机的第1块网卡eth0跟该子网相连接)。

给虚拟机的虚拟机网卡命名为 public-interface。

创建另外一个虚拟网卡,跟子网 flat-subnet 相连接,给这个虚拟网卡命名为 flat-interface。把虚拟网卡 flat-interface 绑定到虚拟机ustack上。

这样,这台虚拟机就有两块网卡:

  • eth0:  public-interface,跟public-subnet相连
  • eht1:flat-interface,跟flat-subnet相连

使用VNC登录虚拟机,查看网卡信息。

现在查看一下网络拓扑图是否正确,我们要保证网卡eth0能够连接公网。

eth0 -> public-interface -> public-subnet -> dev-route -> Public Network

创建公网IP

创建一个公网IP,绑定到虚拟机ustack上的 public-interface 网卡上。

我们尝试在自己的电脑上ping公网IP,但是却ping不通,这是为什么呢?这肯定不是UOS的问题,而是Ubuntu系统的设计造成的,这种情况只会在多网卡时才会出现。
# ping 42.62.73.241当Ubuntu系统发现两块网卡时,会自动设置默认路由走第2块网卡(这是个糟糕的设计),但是我们是把公网IP绑定到第1块网卡上,所以导致无法ping通。解决办法是使用VNC登录虚拟机,然后使用route命令查看并设置虚拟机的路由规则。

先删除旧的默认路由

#route del default gw 172.16.0.1

添加新的默认路由

#route add default gw 192.168.0.1

再次在自己电脑上ping公网IP,直到ping通为止。

修改安全组规则

修改虚拟机安全组中下行规则,增加 TCP 6080端口(用于OpenStack的VNC访问)。

登录虚拟机

使用root用户登录虚拟机,并给stack用户设置密码。

尝试使用stack用户登录虚拟机,验证设置是否正确。

双网卡环境已经配置好了,下面我们可以开始配置DevStack。

配置DevStack

我们已经在你的虚拟机上安装了DevStack,你只需要稍微修改一下配置文件localrc。


# ssh stack@42.62.73.241
stack@ustack:~$
stack@ustack:~$ cd ~/devstack
stack@ustack:~/devstack$

stack@ustack:~/devstack$ vim localrc


修改 localrc 中的 HOST_IP  NOVNCPROXY_URL 的值。


FLOATING_RANGE=192.168.100.224/27
FIXED_RANGE=10.10.10.0/24
FIXED_NETWORK_SIZE=256
ADMIN_PASSWORD=root
MYSQL_PASSWORD=root
PULIC_INTERFACE=eth0
FLAT_INTERFACE=eth1
RABBIT_PASSWORD=root
SERVICE_TOKEN=root
SERVICE_PASSWORD=root
HOST_IP=192.168.0.4     #设置为你虚拟机第1块网卡的固定IP地址
NOVNCPROXY_URL="http://42.62.73.241:6080/vnc_auto.html"  #42.62.73.241是你虚拟机的公网IP地址
OFFLINE=True # 一定要加上,防止更新devstack
RECLONE=False # 一定要加上,防止更新devstack
一键安装OpenStack

在虚拟机中的 /home/devstack/ 目录下执行stack.sh脚本,大概需要5分钟左右,你可以休息一下。

./stack.sh

5分钟之后,你会看到下面的输出。

恭喜你已经成功安装最新版的OpenStack, 你现在可以使用浏览器登录 http://{你的公网IP地址}/,就可以登录OpenStack Dashboard,然后使用admin账号登录(密码是root)。

快速体验OpenStack

让我们体验一下 OpenStack in OpenStack 和 VM in VM

在界面上创建虚拟机

使用VNC登录OpenStack虚拟机

使用SSH登录OpenStack虚拟机

首先你得先登录UOS虚拟机,然后再登录OpenStack虚拟机。

使用命令行操作OpenStack

你UOS虚拟机上,先导入环境变量(souce openrc admin demo),然后使用命令行工具操作OpenStack。

总结

得益于UOS的SDN和分布式存储,让网络规划如此方便,让虚拟机操作如此快捷。从上可以看出,我们可以在培训领域广泛使用UOS,提高教学效率,降低成本。