分享

如何通过DevStack进行OpenStack mitaka 版本的部署

Oner 发表于 2016-9-1 17:50:25 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 16001
本帖最后由 pig2 于 2016-9-1 17:57 编辑
问题导读:
1. Devstack是什么?
2. 物理环境的需求如何?
3. 如何设置ubuntu的源?
4. 安装步骤是如何进行的?




一、写在前面
这篇文章主要介绍了通过DevStack进行OpenStack mitaka 版本的部署,学习过程中主要参考网上资料以及自己实际的部署,整理成笔记以便后续自己查阅。


二、介绍

Devstack是每个OpenStack开发者必备的工具,通过devstack能够快速部署指定版本的openstack,以前整个安装过程过程受限于各种网络环境,整个部署比较耗时,很难一次快速安装完成,总会出现各种各样的问题,一方面openstack 部署复杂性确实比较高,另一方面国内的网络环境我只能呵呵,往往很多依赖包总是下载超时。openstack最新版本(mitaka)发布之际,尝试进行了安装,整个部署过程一个小时以内,可以看出随着国内近几年有更多的企业、工程师拥抱openstack,国内的发展异常迅猛。


三、物理环境

通过在一台物理PC机进行部署,原考虑通过虚拟机部署,虚拟机部署之前遇到过许多问题,这次改为用物理PC部署。
配置:内存:8G, 磁盘:500G, 网卡: eth0 操作系统:Ubuntu 14.04.1 LTS (3.13.0-32-generic)

注意,无论是虚拟机还是物理机,内存至少在2G以上,之前用虚拟机部署all in one 遇到内存资源不足,导致很多组件运行出错。


四、设置ubuntu源


对于ubuntu的系统,默认会从国外的源安装包,导致速度比较慢,在这里进行修改,调整到国内的源。
备份原有源的配置文件:
[mw_shl_code=shell,true]cp /etc/apt/sources.list /etc/apt/sources.list.bak[/mw_shl_code]
修改:
[mw_shl_code=shell,true]vim /etc/apt/sources.list[/mw_shl_code]
删除原有配置信息,添加阿里的源,国内还有很多其他的源,例如163等,在这里请注意的你的linux版本号,我这里是ubuntu 14.04(代号“Trusty Tahr”)。
aliyun:
[mw_shl_code=shell,true]deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse[/mw_shl_code]
修改完成之后进行系统更新,update:
[mw_shl_code=shell,true]apt-get update[/mw_shl_code]同步一下时间:
[mw_shl_code=shell,true]ntpdate ntp.sjtu.edu.cn[/mw_shl_code]

五、安装环境


下载git
[mw_shl_code=shell,true]apt-get install git[/mw_shl_code]
下载devstack
[mw_shl_code=shell,true]cd /home
git clone http://git.trystack.cn/openstack-dev/devstack.git[/mw_shl_code]
这里部署openstack mitaka 版本,那么使用的Devstack,也需要使用相同的版本,这样才能避免安装失败可能性。
[mw_shl_code=shell,true]git clone http://git.trystack.cn/openstack-dev/devstack -b stable/mitaka[/mw_shl_code]
如果已经把devstak master上的代码clone想到本地了,也不必担心,通过git branch -a 查看devstack git 远程代码仓库是否已经有相对应的openstack部署版本,默认大家都是使用devstack的master。
例如在我这里:
[mw_shl_code=shell,true]git branch  -a
* (detached from origin/stable/mitaka)
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/stable/kilo
  remotes/origin/stable/liberty
  remotes/origin/stable/mitaka[/mw_shl_code]
很幸运,目前已经有mitaka部署版本,通过checkout切换至指定版本即可:
[mw_shl_code=shell,true]git checkout remotes/origin/stable/mitaka[/mw_shl_code]
目前Devstack脚本已经不支持直接使用root身份运行,你需要创建stack用户运行,devstack已经提供脚本帮助我们。

[mw_shl_code=shell,true]cd /home/devstack/tools/
./create-stack-user.sh
[/mw_shl_code]
修改devstack目录权限,让stack用户可以运行

[mw_shl_code=shell,true]chown -R stack:stack /home/devstack
chmod 777 /dev/pts/0[/mw_shl_code]
切换的stack用户下
[mw_shl_code=shell,true]su stack
cd /home/devstack
[/mw_shl_code]
进入devstack目录下,创建local.conf文件,这里主要参考沙克老师的博文。
配置文件第一行必须是,否则不会生效:
[mw_shl_code=shell,true][[local|localrc]][/mw_shl_code]
修改github源:
默认Devstack会从github下载所有需要的代码,包括OpenStack。这其实是导致Devstack安装时间太长的一个重要原因。目前国内已经有多个地方提供了下载源,例如git.trystack.cn、git.oschina.net,能够比较及时的通过openstack官方源,在这里我使用git.trystack.cn 提供OpenStack的所有github的mirror。对于Devstack来说,只需要在配置文件增加3行就可以。
[mw_shl_code=shell,true]# 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[/mw_shl_code]
主机IP
这个是必须指定,否则会报错。
[mw_shl_code=shell,true]HOST_IP=192.168.27.128[/mw_shl_code]
镜像下载
安装devstack的时候,默认会下载相应的镜像,这些镜像都在国外,我们可以指定连接来下载相关镜像。下一步trystack会提供相关的镜像下载。
[mw_shl_code=shell,true]# Define images to be automatically downloaded during the DevStack built process.
DOWNLOAD_DEFAULT_IMAGES=False
IMAGE_URLS=http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img[/mw_shl_code]
如果想加快下载镜像的速度,可用在运行devstack之前先把要使用的镜像下载下来,下载后可以直接放在devstack/files中
当前主要使⽤用的镜像:

  • Nova: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4- x86_64-uec.tar.gz
  • Heat: https://dl.fedoraproject.org/pub/fedora/linux/releases/ 20/Images/x86_64/Fedora-x86_64-20-20131211.1-sda.qcow2
  • Trove: http://tarballs.openstack.org/trove/images/ubuntu/ mysql.qcow2

加速devstack安装速度其他几点建议,可按照个人实际情况进行配置,本次部署仅仅只是修改了openstack 下载源为git.trystack.cn未做其他方面的优化:
  • 国内代码源:git.trystack.cn、git.oschina.net
  • 从github上⼿手动同步方式下载需要安装的openstack代码包,之后放⼊在local.conf中定义的目录,默认/opt/stack/
  • 在本地搭建git环境
  • 缓存get-pip.py,修改tools/install_pip.sh,手动下载下来,创建Apache环境。
    [mw_shl_code=shell,true]#PIP_GET_PIP_URL=https://bootstrap.pypa.io/get-pip.py
    PIP_GET_PIP_URL=http://localhost/get-pip.py[/mw_shl_code]
  • 优化pip源,使⽤用国内源(豆瓣)
    [mw_shl_code=shell,true]/root/.pip/pip.conf
    [global]
    index-url = http://pypi.douban.com/simple[/mw_shl_code]
  • 缓存pip,并使⽤用apache提供服务
    [mw_shl_code=shell,true]cd /opt/stack.kilo/requirements
    mkdir -p cache
    pip install -r global-requirements.txt -d cache
    pip install tox -d cache[/mw_shl_code]
    [mw_shl_code=shell,true]/root/.pip/pip.conf
    [global]
    find-links = http://localhost/pip
    no-index = true
    pre = true[/mw_shl_code]
IPV4
现在默认会创建网络是支持ip v6,通常我们是用不到。我是希望仅仅支持ip v4。
[mw_shl_code=shell,true]# only support IP v4
SERVICE_IP_VERSION=4[/mw_shl_code]
Keystone版本

现在默认就是支持keystone v3,除非你需要使用v2。
[mw_shl_code=shell,true]# only support keystone v2
ENABLE_IDENTITY_V2=True[/mw_shl_code]
网络
默认Devstack会创建一个网络,如果你不需要创建
[mw_shl_code=shell,applescript]#not create default network
NEUTRON_CREATE_INITIAL_NETWORKS=False[/mw_shl_code]
我们也可以指定相关的网络
[mw_shl_code=applescript,true]# instead of default network
FLOATING_RANGE="192.168.27.0/24"
FIXED_RANGE="10.0.0.0/24"
Q_FLOATING_ALLOCATION_POOL=start=192.168.27.102,end=192.168.27.110
PUBLIC_NETWORK_GATEWAY="192.168.27.2"[/mw_shl_code]
指定版本安装
对于普通用户,想了解某个版本的功能,可以在配置文件指定版本
[mw_shl_code=applescript,true]# Branches
KEYSTONE_BRANCH=stable/mitaka
NOVA_BRANCH=stable/mitaka
NEUTRON_BRANCH=stable/mitaka
SWIFT_BRANCH=stable/mitaka
GLANCE_BRANCH=stable/mitaka
CINDER_BRANCH=stable/mitaka[/mw_shl_code]
Neutron网络

这是最复杂的地方,目前devstack默认的网络还是nova network,所以你要采用Neutron,你必须
[mw_shl_code=applescript,true]# Enabling Neutron (network) Service
disable_service n-net
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
enable_service q-metering
enable_service neutron[/mw_shl_code]
vlan模式
[mw_shl_code=applescript,true]# VLAN configuration.
Q_PLUGIN=ml2
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=1100:2999[/mw_shl_code]
附上个人部署配置的devstack local.conf 文件:
[mw_shl_code=applescript,true][[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

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

# Credentials
DATABASE_PASSWORD=pass
ADMIN_PASSWORD=pass
SERVICE_PASSWORD=pass
SERVICE_TOKEN=pass
RABBIT_PASSWORD=pass
#FLAT_INTERFACE=eth0

HOST_IP=172.16.19.41
SERVICE_HOST=172.16.19.41
MYSQL_HOST=172.16.19.41
RABBIT_HOST=172.16.19.41
GLANCE_HOSTPORT=172.16.19.41:9292

# Database Backend MySQL
enable_service mysql

# RPC Backend RabbitMQ
enable_service rabbit

# Enable Keystone - OpenStack Identity Service
enable_service key

# Horizon - OpenStack Dashboard Service
enable_service horizon

# Enable Glance - OpenStack Image service
enable_service g-api g-reg

# Enable Cinder - Block Storage service for OpenStack
VOLUME_GROUP="cinder-volumes"
enable_service cinder c-api c-vol c-sch c-bak

# Enable Heat (orchestration) Service
enable_service heat h-api h-api-cfn h-api-cw h-eng

# Enable Tempest - The OpenStack Integration Test Suite
enable_service tempest

# Enable NoVNC
enable_service n-novnc

# Enabling Neutron (network) Service
disable_service n-net
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
enable_service q-metering
enable_service neutron

## Neutron options
Q_USE_SECGROUP=True
FLOATING_RANGE="172.16.19.0/24"
FIXED_RANGE="10.0.1.0/24"
NETWORK_GATEWAY="10.0.1.254"
Q_FLOATING_ALLOCATION_POOL=start=172.16.19.200,end=172.16.19.210
PUBLIC_NETWORK_GATEWAY="172.16.19.254"
Q_L3_ENABLED=True
PUBLIC_INTERFACE=eth0
Q_USE_PROVIDERNET_FOR_PUBLIC=True
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex

# VLAN configuration.
Q_PLUGIN=ml2
ENABLE_TENANT_VLANS=True

# Branches
KEYSTONE_BRANCH=stable/mitaka
NOVA_BRANCH=stable/mitaka
NEUTRON_BRANCH=stable/mitaka
GLANCE_BRANCH=stable/mitaka
CINDER_BRANCH=stable/mitaka
HEAT_BRANCH=stable/mitaka
HORIZON_BRANCH=stable/mitaka

# Select Keystone's token format
# Choose from 'UUID', 'PKI', or 'PKIZ'
# INSERT THIS LINE...
KEYSTONE_TOKEN_FORMAT=${KEYSTONE_TOKEN_FORMAT:-UUID}
KEYSTONE_TOKEN_FORMAT=$(echo ${KEYSTONE_TOKEN_FORMAT} | tr '[:upper:]' '[:lower:]')

# Work offline
#OFFLINE=True
# Reclone each time
RECLONE=yes

# Logging
DEST=/home/stack.mitaka
LOGFILE=/home/stack.mitaka/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=True
SCREEN_LOGDIR=/home/stack.mitaka/logs[/mw_shl_code]
devstack 下载的安装包默认是放置在/opt/stack/下,我这里配置到/home/stack.mitaka,并且在后面添加了版本号,方便自己在各个版本之间切换不搞混。
运行
[mw_shl_code=shell,true]./stack.sh[/mw_shl_code]
安装过程,你很可能遇到错误,遇到错误请不到担心,仔细看一下错误引起的原因,devstack安装过程不仅会在控制台打印消息,还会把消息记录到/opt/stack/log/stack.sh.log,我这里是进行了重新配置。
[mw_shl_code=shell,true]========================
DevStack Components Timed
========================

run_process - 79 secs
test_with_retry - 3 secs
apt-get-update - 6 secs
pip_install - 74 secs
restart_apache_server - 10 secs
wait_for_service - 9 secs
git_timed - 1 secs
apt-get - 8 secs

This is your host IP address: 172.16.19.41
This is your host IPv6 address: ::1
Horizon is now available at http://172.16.19.41/dashboard
Keystone is serving at http://172.16.19.41:5000/
The default users are: admin and demo
The password: pass[/mw_shl_code]
出现以上消息即表示openstack已经安装完成,通过http://172.16.19.41/dashboard 进行访问,以及默认账户信息。


来源:CSDN
作者:Mr_扛扛

已有(1)人评论

跳转到指定楼层
doscho 发表于 2016-9-1 19:45:27
研究的很透彻,值得学些!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条