优雅安装OpenStack

优雅安装OpenStack

原文是半年前针对pike版本写的,这里针对Queen版本更新一下。

===========================

OpenStack安装方法有很多,chef,ansible,puppet,fuel等。如果作为OpenStack的开发和初步研究,devstack应该是学习成本最低的安装方式了。接下来就介绍一下如何用devstack优雅安装OpenStack。

为什么是优雅的安装?因为不可描述的原因,只能强装优雅 。如果你能够看到外面的世界或者就在外面的世界,那你已经足够优雅,可以直接跳到步骤5。

0. 环境准备

8G内存(推荐数字,越多越好),60G硬盘。

Ubuntu 16.04系统,server image即可,不用带桌面,节省内存。

最好做成虚拟机,一个是方便备份,另一个devstack会安装大量包,可能会影响你的电脑的正常使用。

我用的是这个(刚刚验证过了可以下载)

imagereleases.ubuntu.com

至于怎么部署虚机,网上有很多教程了,你可以用Virtual box,hyperV,VMware workstation,VMware Fusion。我就跳过这部分了。

1. 配置Ubuntu apt source源

执行下面命令:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list

在编辑界面,删除原来的内容,填入

sources.listgithub.com

中的内容。之后执行:

sudo apt update

2. 配置pip源

OpenStack大部分项目是python项目,安装过程中要下载大量python包,为了更顺畅的安装,需要修改pip源。

mkdir ~/.pip
vim ~/.pip/pip.conf

在编辑界面填入

pip.confgithub.com

中的内容。

同时接着修改下面的文件,填入pip.conf的内容。

sudo mkdir /root/.pip
sudo vim /root/.pip/pip.conf

3. 下载devstack

下载devstack并切换到一个稳定版本,如果不是做upstream开发,尽量避免使用最新的devstack,因为可能存在不稳定。

git clone https://git.openstack.org/openstack-dev/devstack
cd devstack
git checkout remotes/origin/stable/queens
git checkout -b queens

4. 配置devstack local.conf

首先切换到pike稳定版本,再通过下面的方法生成local.conf,local.conf是devstack的安装参数。

cp samples/local.conf ./
vim local.conf

根据你想部署的模式,参考我放在github上的local修改内容,这里仅以all-in-one为例,多节点的部署的local.conf配置文件我也给出了,仅供参考。

local.confgithub.com

执行

cp ~/devstack/samples/local.sh ~/devstack/

5. 优雅安装

完成了上面的步骤,才可以开始优雅安装。在devstack目录,执行:

./stack.sh

安装过程可能会要求输入一次密码。安装时间取决于你的网速,硬盘速度,CPU速度。一般需要一个小时左右,我个人的电脑速度稍微慢一些,总共花了一个半小时多完成。如果最后看到下面的提示,恭喜你,安装成功了。

=========================
DevStack Component Timing
=========================
Total runtime    6345

run_process       48
test_with_retry    9
apt-get-update    12
pip_install      1335
osc              384
wait_for_service  54
git_timed        672
dbsync           544
apt-get          984
=========================

This is your host IP address: 192.168.31.179
This is your host IPv6 address: ::1
Horizon is now available at http://192.168.31.179/dashboard
Keystone is serving at http://192.168.31.179/identity/
The default users are: admin and demo
The password: nomoresecret

安装完成之后,源代码都在/opt/stack,目录下。并不是所有的项目都会安装,只有OpenStack的核心项目才会默认安装。因为我们在第3步设置了devstack的版本,所以这里所有项目的版本,都是queens。

配置文件在/etc/目录下,例如nova的配置文件在/etc/nova目录下。

6. 验证

6.1 创建虚机

devstack默认会带一个cirros镜像,这是一个简化版的系统,适合用来测试。devstack默认也会创建一个虚机三层网络架构。包括了一个router,一个tenant network和一个public network。首先在devstack目录下,导入用户名和租户,再执行nova boot创建虚机:

source ~/devstack/openrc admin admin
nova boot --image cirros-0.3.5-x86_64-disk --flavor 1 --nic net-name=private vm1

6.2 登录虚机

先确定虚机IP。

nova list

在虚机列表可以看到IP地址。

登录Linux namespace,

$ ip netns
qrouter-1818f77c-e76b-43c5-b87a-9a04fbba6a9e
qdhcp-51b3ecc4-50c5-408b-b554-1dd5f6e6a708
$ sudo ip netns exec qdhcp-51b3ecc4-50c5-408b-b554-1dd5f6e6a708 bash

注意,你的Linux namespace后面的uuid是不一样的。其实两个namespace随便选哪个都行。在namespace内,登录虚机,密码是cubswin:)

ssh cirros@10.0.0.9

这样你就进到了OpenStack管理的虚机中来了。你可以看当前的IP,可以访问别的虚机(如果你还创建了别的虚机的话),甚至可以访问外网,例如:

$ ping 8.8.8.8 -c 1

最后

0-4是我在个人环境搭建OpenStack的一些经验,对于生活在祖国网络环境下的朋友,或许有一定的帮助。5-6就是一个简单的OpenStack安装和使用。如果你想了解OpenStack,或者想使用OpenStack,我相信本文是一个好的上手的方法。

编辑于 2018-09-05

文章被以下专栏收录

    介绍SDN和数据中心网络的各个方面。专栏所有文章仅代表本人观点,与本人当前或之前的雇佣公司无关。本人保留自省的权利,也就是说,你看到文章时,文章内容也不一定代表本人最新的观点。