DevStack 环境搭建 (Ubuntu + Ocata)

准备


由于OpenStack官方目前的安装搭建指导,仍以Ubuntu 16.04为准,建议大家不要使用太新的版本,这里所使用的是Ubuntu 16.04.2 server 镜像版本为大家进行说明。

这里所使用的OpenStack社区版本,是Ocata版本。

所需软件及对应版本

注意:我自己的计算机使用的是Windows 10 64位操作系统。

  1. 虚拟机镜像:ubuntu-16.04.2-server-amd64.iso
  2. DevStack版本:Ocata(安装时指定)
  3. OpenStack版本:Ocata(安装时指定)
  4. VirtualBox:VirtualBox-5.1.20-114628-Win.exe

搭建前检查

  • 首先进计算机BIOS,查看虚拟化设置是否开启,这一部分有不了解的,还请自行对照所用计算机型号,网上搜索一下。由于设置比较简单,这里不再描述其过程。
  • 查看所下载VirtualBox版本是否与自己操作系统版本对应。
  • 查看Ubuntu镜像版本是否正确。
  • 查看自己的计算机内存及CPU是否满足安装要求。
    这里需要注意一下,由于我们的DevStack是部署在虚拟机上,因此,最好保证Ubuntu虚拟机的内存大于4G,这里我给了5G,对应的CPU使用2核。

创建虚拟机

创建过程比较简单,这里将虚拟机的创建和系统安装合二为一,建议参考我之前的一篇文章中“创建虚拟机”和“安装虚拟机操作系统”两个部分。
地址:http://blog.csdn.net/mygrus/article/details/53816022

注意,这里仅仅是虚拟机的创建和系统安装,而并不是指DevStack。

配置虚拟机


配置虚拟机root账户密码

在安装好虚拟机之后,首先使用安装虚拟机操作系统时,指定的用户名/密码进行登陆。
然后我们指定root账户的密码,使用命令:

sudo passwd root

这里写图片描述

此时会让你输入当前用户的密码,输入后就可以指定root用户的密码了,这里需要输入两次以便确认。

配置虚拟机网络

使用命令查看当前虚拟机网卡信息:

ifconfig -a

这里写图片描述

这里我们可以看到有两个网卡:enp0s3和enp0s8。

  • enp0s3:主要用它来连接外网,也就是创建的时候连接方式是NAT的那张网卡。
  • enp0s8:后续用来指定静态IP,用于对OpenStack的服务进行访问、调试等。

我们进入/etc/network目录:

这里写图片描述

通过命令

vim interfaces

打开配置文件进行编辑,增加enp0s8这张网卡的配置信息:

这里写图片描述

具体的配置信息怎么获取呢?首先我们要看看当前自己的计算机网络信息。可以打开命令行工具,执行ipconfig命令进行查看,例如:

这里写图片描述

这里记录下网关信息,并指定一个同网段,且没有被使用的IP。比如我测试发现192.168.4.191这个IP尚未被使用,于是这个IP便可以指定给我的虚拟机使用。

回到虚拟机的编辑窗口中,在当前配置文件中,末尾进行如下配置(你需要根据实际情况填写地址和网关):

这里写图片描述

注意这张网卡配置的是静态IP。

配置完使用命令:wq保存并退出。

配置虚拟机SSH登陆权限

此步骤主要是为了方便我们可以直接以root用户进行远程登陆。

通过命令打开SSH配置文件:

vim /etc/ssh/sshd_config

这里写图片描述

找到其中的PermitRootLogin参数,将它的值改为“yes”,同样保存退出。

到这里,我们队虚拟机的网络及SSH配置就完了。此时我们重启虚拟机,使配置生效。

检查网络配置

虚拟机重启完毕后,我们以root用户进行登陆:

这里写图片描述

然后徐通过ping命令,对我们之前的配置进行检查:

  • 虚拟机—>宿主机(物理主机),即在虚拟机上ping你物理主机同网段IP。以下方式类似。
    这里写图片描述

  • 宿主机—>虚拟机
    这里写图片描述

  • 虚拟机—>外网
    这里写图片描述

而后,在宿主机上,使用Xshell或其它类似工具,以root用户登录虚拟机,查看ssh登陆是否正常:

这里写图片描述

配置Ubuntu国内源

由于使用Ubuntu官方的源速度比较慢,很容易在后续搭建时失败,这里建议改为国内源。

执行命令:

cp /etc/apt/sources.list /home/sources.list.bak

这里写图片描述

来备份原有系统配置。

将官方原有的以us开头的地址,都改为cn开头:

注意,如果你之前有从Ubuntu中文官方网址下载过桌面版的镜像(比如17.04),你可以看到里面的源地址就这这样的。当然你也可以使用其它国内源,比如我之前使用过阿里的。

这里写图片描述

使用国内源进行更新软件包

执行命令:

apt-get update

进行更新,如图:

这里写图片描述

这里写图片描述

安装git

系统自带git,我在安装的时候,自带的已经是最新版本。

这里写图片描述

安装pip

检查发现系统没有安装pip,因此需要进行安装。

安装使用命令:

apt-get install python-pip

命令都是小写,CSDN关键字会改大小写。。。

这里写图片描述

注意安装过程中会问你是否继续,输入y继续安装。

这里写图片描述

配置pip

在/root目录下,查看是否存在“.pip”目录:

这里写图片描述

若不存在,需要手动创建:

mkdir .pip

这里写图片描述

如上图所示,还需要创建一个pip.conf的配置文件,命令为:

touch pip.conf

打开该配置文件进行pip源的信息填写:

这里写图片描述

注意,这里的国内源可以从网上找到很多,你也可以配置成豆瓣的源或其它。这里使用的是清华大学的镜像。

安装


从这里开始,我们开始进行DevStack的安装搭建。

下载DevStack代码

进入/home目录,执行以下命令,下载DevStack:

git clone http://git.trystack.cn/openstack-dev/devstack.git -b stable/ocata

这里写图片描述

这里写图片描述

创建stack用户并修改对应文件权限

首先创建stack用户。

在/home/devstack/tools目录下,执行命令:

./create-stack-user.sh

这里写图片描述

其次,需要给stack用户也设置一个密码,方法与root用户相同。

这里写图片描述

第三,需要修改devstack目录及其下文件和子目录的权限,将它们都改为stack用户权限。此时都还是root权限。

这里写图片描述

这里写图片描述

执行命令进行修改:

chown -R stack:stack /home/devstack

这里写图片描述

由于后续我们调试需要用到screen命令,因此也同样需要修改对应目录权限:

chmod 777 /dev/pts/0

这里写图片描述

我们这时一直都在使用root用户,这里,我们可以切换到stack用户了。

su stack

配置stack用户的pip源

配置方式其实与root用户是一样的。不过,我们是要进入到stack用户的目录下,而不是/root目录。

执行命令:

cd ~

进入stack用户目录。

注意,上一小节结尾已经切换到了stack用户,所以这里会直接进入到stack用户目录。

这里是配置好的内容,与root用户是一样的。

这里写图片描述

注意,如果你是直接从root用户目录下拷贝过来的,需要查看对应目录及配置文件的权限是否正确,这里都应是stack用户权限的。

设置DevStack配置文件

进入/home/devstack目录。

./samples子目录中中拷贝一份local.conf文件到当前目录下(即/home/devstack)。

打开该文件,进行编辑。

这里先强调一下,具体的配置,每个人的可能都不一样,这里仅给出自己使用过的。

编辑内容如下:

# The ``localrc`` section replaces the old ``localrc`` configuration file.
# Note that if ``localrc`` is present it will be used in favor of this section.
[[local|localrc]]

#use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git

#OFFLINE=True
RECLONE=True

#Define images to be automatically downloaded during the DevStack built process.
DOWNLOAD_DEFAULT_IMAGES=False
IMAGE_URLS="http://images.trystack.cn/cirros/cirros-0.3.4-x86_64-disk.img"

# If the ``*_PASSWORD`` variables are not set here you will be prompted to enter
# values for them by ``stack.sh``and they will be added to ``local.conf``.
ADMIN_PASSWORD=mydevstack
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD

# ``HOST_IP`` and ``HOST_IPV6`` should be set manually for best results if
# the NIC configuration of the host is unusual, i.e. ``eth1`` has the default
# route but ``eth0`` is the public interface.  They are auto-detected in
# ``stack.sh`` but often is indeterminate on later runs due to the IP moving
# from an Ethernet interface to a bridge on the host. Setting it here also
# makes it available for ``openrc`` to include when setting ``OS_AUTH_URL``.
# Neither is set by default.
#HOST_IP=w.x.y.z
#HOST_IPV6=2001:db8::7
HOST_IP=192.168.4.191

# Logging
# -------

# By default ``stack.sh`` output only goes to the terminal where it runs.  It can
# be configured to additionally log to a file by setting ``LOGFILE`` to the full
# path of the destination log file.  A timestamp will be appended to the given name.
LOGFILE=/opt/stack/logs/stack.sh.log

# Old log files are automatically removed after 7 days to keep things neat.  Change
# the number of days by setting ``LOGDAYS``.
LOGDAYS=2

# Nova logs will be colorized if ``SYSLOG`` is not set; turn this off by setting
# ``LOG_COLOR`` false.
LOG_COLOR=True

# Using milestone-proposed branches
# ---------------------------------

# Uncomment these to grab the milestone-proposed branches from the
# repos:
#CINDER_BRANCH=milestone-proposed
#GLANCE_BRANCH=milestone-proposed
#HORIZON_BRANCH=milestone-proposed
#KEYSTONE_BRANCH=milestone-proposed
#KEYSTONECLIENT_BRANCH=milestone-proposed
#NOVA_BRANCH=milestone-proposed
#NOVACLIENT_BRANCH=milestone-proposed
#NEUTRON_BRANCH=milestone-proposed
#SWIFT_BRANCH=milestone-proposed
HORIZON_BRANCH=stable/ocata
KEYSTONE_BRANCH=stable/ocata
NOVA_BRANCH=stable/ocata
NEUTRON_BRANCH=stable/ocata
GLANCE_BRANCH=stable/ocata
CINDER_BRANCH=stable/ocata

KEYSTONE_TOKEN_FORMAT=UUID

所有这些工作都做完之后,建议重启一下虚拟机。

执行脚本进行安装

重启完毕,进入/home/devstack目录,执行命令

./stack.sh

进行DevStack的安装。

安装的具体耗时,取决你的网络环境。

如果你看到如下显示,祝贺你完成了!

这里写图片描述

现在我们打开浏览器,登陆OpenStack的portal吧:

这里写图片描述

登陆地址就是local.conf中的主机IP,我这里默认就是虚拟机那个静态IP。

使用admin账户登录,密码也在local.conf中。

登录后的默认页面如下:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/mygrus/article/details/70432436