VirtualBox中安装OpenStack

文章目录
  1. 1. 前言
  2. 2. 系统准备
  3. 3. 环境准备
  4. 4. 配置devstack
    1. 4.1. 创建local.conf
    2. 4.2. local.conf说明
    3. 4.3. 更换pypi源(可选)
  5. 5. 安装devstack
  6. 6. 书签

前言

OpenStack的安装是一个难点,非常难。哪怕已经安装过OpenStack,再次安装,也不敢说一定成功。安装过程中某处细微变化,也许就会出现各种奇葩错误。

总的来说,OpenStack大致分为4种安装方式:
1、基于虚拟机的快速体验安装。
这是最简单的方法,把搭建好环境的虚拟机运行起来即可。但是,遗憾的是,在网上没有找到OpenStack的虚拟机镜像。

2、基于DevStack快速脚本安装。
这是OpenStack官方推荐的方式,安装速度较快,基于Folsom版本。但是,安装过程中一言不合就报错,困难重重。

3、使用自动化安装工具。
RDO、Fuel、Puppet、Chef、Salt等,都是OpenStack的自动化安装工具。说是自动化安装工具,实际上安装配置时,也是非常繁琐。

5、手动安装。
这种方式最困难,但是实际生产环境下,基本都需要手动安装。

本文,就探讨一下在VirtualBox中使用DevStack安装OpenStack的步骤。也就是说,我们要自己创建一个OpenStack的虚拟机镜像。

系统准备

1、VirtualBox中安装好Ubuntu16,至少需要内存4G,硬盘20G。

2、配置好Ubuntu16的网络地址为192.169.56.102。

3、安装好ssh服务,方便远程操作。

步骤2和3可以参考《VirtualBox下CentOS7和Ubuntu16.04网络配置》

环境准备

1、安装git
apt-get install git

2、安装python
apt-get install python

3、添加stack用户
useradd -s /bin/bash -d /opt/stack -m stack

4、给stack用户添加sudo权限
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack

5、切换到stack用户
su - stack

6、下载devstack
git clone https://git.openstack.org/openstack-dev/devstack
或者
git clone https://github.com/openstack-dev/devstack

推荐从github下载。速度缓慢,请耐心等待。

7、切换到stable/newton分支
cd devstack

git checkout stable/newton

配置devstack

创建local.conf

在devstack目录下创建local.conf文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[[local|localrc]]
ADMIN_PASSWORD=voidking
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD

# Branches
KEYSTONE_BRANCH=stable/newton
NOVA_BRANCH=stable/newton
NEUTRON_BRANCH=stable/newton
SWIFT_BRANCH=stable/newton
GLANCE_BRANCH=stable/newton
CINDER_BRANCH=stable/newton

# Use 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

# Enable heat services
enable_service h-eng h-api h-api-cfn h-api-cw

# Enable heat plugin
enable_plugin heat http://git.trystack.cn/openstack/heat.git stable/newton

IMAGE_URL_SITE="http://download.fedoraproject.org"
IMAGE_URL_PATH="/pub/fedora/linux/releases/25/CloudImages/x86_64/images/"
IMAGE_URL_FILE="Fedora-Cloud-Base-25-1.3.x86_64.qcow2"
IMAGE_URLS+=","$IMAGE_URL_SITE$IMAGE_URL_PATH$IMAGE_URL_FILE

# Service/Dashboard IP
FLOATING_RANGE=192.168.1.224/27
HOST_IP=192.168.56.102
FLAT_INTERFACE=enp0s3

local.conf说明

1、密码配置

1
2
3
4
ADMIN_PASSWORD=voidking
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD

2、git仓库
devstack默认会从 https://git.openstack.org 上下载openstack组件,那是相当的慢。故在local.conf必须要把仓库替换成其他源,国内推荐git.trystack.cn。注意,trystack用的是http,不是https。

1
GIT_BASE=http://git.trystack.cn

或者

1
GIT_BASE=https://github.com

3、branch
保证与devstack的branch一致,避免不可预知的问题。

1
NOVA_BRANCH=stable/newton

4、Service/Dashboard IP
与虚拟机IP保持一致。

1
HOST_IP=192.168.56.102

更换pypi源(可选)

devstack默认python源为 https://pypi.python.org ,国内访问非常慢。可以从 https://www.pypi-mirrors.org/ 选一个国内的镜像,把镜像地址写到pip.conf文件,并放到/root/.pip/pip.conf以及/home/stack/.pip/pip.conf。

1
2
[global]
index-url = https://pypi.doubanio.com/simple

安装devstack

1、切换stack用户,在devstack目录下。
./stack.sh

安装过程中,会三次提示输入密码,这些密码需要和local.conf中保持一致。

如果下载报错了。。。,请重新执行:
./stack.sh

这一步非常久,小编用了六个多小时,请耐心等待。

3、安装成功,提示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
=========================
Total runtime 2982

run_process 104
test_with_retry 6
apt-get-update 22
pip_install 462
restart_apache_server 15
wait_for_service 26
apt-get 12
=========================

This is your host IP address: 192.168.56.102
This is your host IPv6 address: ::1
Horizon is now available at http://192.168.56.102/dashboard
Keystone is serving at http://192.168.56.102/identity/
The default users are: admin and demo
The password: voidking
2017-06-15 01:01:59.770 | WARNING:
2017-06-15 01:01:59.771 | Using lib/neutron-legacy is deprecated, and it will be removed in the future
2017-06-15 01:01:59.771 | stack.sh completed in 2982 seconds.

4、大功告成,这时就可以通过浏览器访问openstack服务了!
访问地址:http://192.168.56.102/dashboard

PS:如果这一步无法访问,提示“Internal Server Error”,那么需要手动把ip地址加到local_settings.py里的ALLOWED_HOSTS字段。
vim /opt/stack/horizon/openstack_dashboard/local/local_settings.py

1
2
3
4
5
# If horizon is running in production (DEBUG is False), set this
# with the list of host/domain names that the application can serve.
# For more information see:
# https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts
ALLOWED_HOSTS = ['*']

然后重启apache2服务,service apache2 restart

5、输入用户名admin,密码voidking,进入管理面板。

书签

VirtualBox + DevStack

DevStack

10分钟安装OpenStack

Fuel 30 分钟快速安装OpenStack

个人电脑上搭建OpenStack的实验室

All-In-One Single Machine

Huawei Icehouse All in One Operation Guide

penStack项目系列介绍(3) Devstack

DevStack环境搭建

Ubuntu14.04下载地址1

Ubuntu14.04下载地址2