OpenStack mitaka DevStack 部署
Posted Mr_扛扛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenStack mitaka DevStack 部署相关的知识,希望对你有一定的参考价值。
一、写在前面
这篇文章主要介绍了通过DevStack进行OpenStack mitaka 版本的部署,学习过程中主要参考网上资料以及自己实际的部署,整理成笔记以便后续自己查阅。
如果转载,请保留作者信息。
邮箱地址:jpzhang.ht@gmail.com
二、介绍
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的系统,默认会从国外的源安装包,导致速度比较慢,在这里进行修改,调整到国内的源。
备份原有源的配置文件:
cp /etc/apt/sources.list /etc/apt/sources.list.bak
修改:
vim /etc/apt/sources.list
删除原有配置信息,添加阿里的源,国内还有很多其他的源,例如163等,在这里请注意的你的linux版本号,我这里是ubuntu 14.04(代号“Trusty Tahr”)。
aliyun:
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
修改完成之后进行系统更新,update:
apt-get update
同步一下时间:
ntpdate ntp.sjtu.edu.cn
五、安装环境
下载Git:
apt-get install git
下载devstack
cd /home
git clone http://git.trystack.cn/openstack-dev/devstack.git
这里部署openstack mitaka 版本,那么使用的Devstack,也需要使用相同的版本,这样才能避免安装失败可能性。
git clone http://git.trystack.cn/openstack-dev/devstack -b stable/mitaka
如果已经把devstak master上的代码clone想到本地了,也不必担心,通过git branch -a 查看devstack git 远程代码仓库是否已经有相对应的openstack部署版本,默认大家都是使用devstack的master。
例如在我这里:
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
很幸运,目前已经有mitaka部署版本,通过checkout切换至指定版本即可:
git checkout remotes/origin/stable/mitaka
目前Devstack脚本已经不支持直接使用root身份运行,你需要创建stack用户运行,devstack已经提供脚本帮助我们。
cd /home/devstack/tools/
./create-stack-user.sh
修改devstack目录权限,让stack用户可以运行
chown -R stack:stack /home/devstack
chmod 777 /dev/pts/0
切换的stack用户下
su stack
cd /home/devstack
进入devstack目录下,创建local.conf文件,这里主要参考沙克老师的博文。
配置文件第一行必须是,否则不会生效:
[[local|localrc]]
修改github源:
默认Devstack会从github下载所有需要的代码,包括OpenStack。这其实是导致Devstack安装时间太长的一个重要原因。目前国内已经有多个地方提供了下载源,例如git.trystack.cn、git.oschina.net,能够比较及时的通过openstack官方源,在这里我使用git.trystack.cn 提供OpenStack的所有github的mirror。对于Devstack来说,只需要在配置文件增加3行就可以。
# 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
主机IP
这个是必须指定,否则会报错。
HOST_IP=192.168.27.128
镜像下载
安装devstack的时候,默认会下载相应的镜像,这些镜像都在国外,我们可以指定连接来下载相关镜像。下一步trystack会提供相关的镜像下载。
# 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
如果想加快下载镜像的速度,可用在运行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环境。
#PIP_GET_PIP_URL=https://bootstrap.pypa.io/get-pip.py PIP_GET_PIP_URL=http://localhost/get-pip.py
优化pip源,使⽤用国内源(豆瓣)
/root/.pip/pip.conf [global] index-url = http://pypi.douban.com/simple
缓存pip,并使⽤用apache提供服务
cd /opt/stack.kilo/requirements mkdir -p cache pip install -r global-requirements.txt -d cache pip install tox -d cache
/root/.pip/pip.conf [global] find-links = http://localhost/pip no-index = true pre = true
IPV4
现在默认会创建网络是支持ip v6,通常我们是用不到。我是希望仅仅支持ip v4。
# only support IP v4
SERVICE_IP_VERSION=4
Keystone版本
现在默认就是支持keystone v3,除非你需要使用v2。
# only support keystone v2
ENABLE_IDENTITY_V2=True
网络
默认Devstack会创建一个网络,如果你不需要创建
#not create default network
NEUTRON_CREATE_INITIAL_NETWORKS=False
我们也可以指定相关的网络
# 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"
指定版本安装
对于普通用户,想了解某个版本的功能,可以在配置文件指定版本
# 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
Neutron网络
这是最复杂的地方,目前devstack默认的网络还是nova network,所以你要采用Neutron,你必须
# 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
vlan模式
# VLAN configuration.
Q_PLUGIN=ml2
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=1100:2999
附上个人部署配置的devstack local.conf 文件:
[[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
devstack 下载的安装包默认是放置在/opt/stack/下,我这里配置到/home/stack.mitaka,并且在后面添加了版本号,方便自己在各个版本之间切换不搞混。
运行
./stack.sh
安装过程,你很可能遇到错误,遇到错误请不到担心,仔细看一下错误引起的原因,devstack安装过程不仅会在控制台打印消息,还会把消息记录到/opt/stack/log/stack.sh.log,我这里是进行了重新配置。
========================
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
出现以上消息即表示openstack已经安装完成,通过http://172.16.19.41/dashboard 进行访问,以及默认账户信息。
以上是关于OpenStack mitaka DevStack 部署的主要内容,如果未能解决你的问题,请参考以下文章