博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenStack mitaka DevStack 部署
阅读量:4301 次
发布时间:2019-05-27

本文共 8670 字,大约阅读时间需要 28 分钟。

一、写在前面

这篇文章主要介绍了通过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 multiversedeb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiversedeb-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 /homegit 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/devstackchmod 777 /dev/pts/0

切换的stack用户下

su stackcd /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 mirrorGIT_BASE=http://git.trystack.cnNOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.gitSPICE_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=FalseIMAGE_URLS=http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

如果想加快下载镜像的速度,可用在运行devstack之前先把要使用的镜像下载下来,下载后可以直接放在devstack/files中

当前主要使⽤用的镜像:

  • Nova: x86_64-uec.tar.gz
  • Heat: 20/Images/x86_64/Fedora-x86_64-20-20131211.1-sda.qcow2
  • Trove: 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.pyPIP_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/requirementsmkdir -p cachepip install -r global-requirements.txt -d cachepip install tox -d cache
    /root/.pip/pip.conf[global]find-links = http://localhost/pipno-index = truepre = true

IPV4

现在默认会创建网络是支持ip v6,通常我们是用不到。我是希望仅仅支持ip v4。

# only support IP v4SERVICE_IP_VERSION=4

Keystone版本

现在默认就是支持keystone v3,除非你需要使用v2。

# only support keystone v2ENABLE_IDENTITY_V2=True

网络

默认Devstack会创建一个网络,如果你不需要创建

#not create default networkNEUTRON_CREATE_INITIAL_NETWORKS=False

我们也可以指定相关的网络

# instead of default networkFLOATING_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.110PUBLIC_NETWORK_GATEWAY="192.168.27.2"

指定版本安装

对于普通用户,想了解某个版本的功能,可以在配置文件指定版本

# BranchesKEYSTONE_BRANCH=stable/mitakaNOVA_BRANCH=stable/mitakaNEUTRON_BRANCH=stable/mitakaSWIFT_BRANCH=stable/mitakaGLANCE_BRANCH=stable/mitakaCINDER_BRANCH=stable/mitaka

Neutron网络

这是最复杂的地方,目前devstack默认的网络还是nova network,所以你要采用Neutron,你必须

# Enabling Neutron (network) Servicedisable_service n-netenable_service q-svcenable_service q-agtenable_service q-dhcpenable_service q-l3enable_service q-metaenable_service q-meteringenable_service neutron

vlan模式

# VLAN configuration.Q_PLUGIN=ml2ENABLE_TENANT_VLANS=TrueTENANT_VLAN_RANGE=1100:2999

附上个人部署配置的devstack local.conf 文件:

[[local|localrc]]# use TryStack git mirrorGIT_BASE=http://git.trystack.cnNOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.gitSPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git# Define images to be automatically downloaded during the DevStack built process.DOWNLOAD_DEFAULT_IMAGES=FalseIMAGE_URLS="http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img"# CredentialsDATABASE_PASSWORD=passADMIN_PASSWORD=passSERVICE_PASSWORD=passSERVICE_TOKEN=passRABBIT_PASSWORD=pass#FLAT_INTERFACE=eth0HOST_IP=172.16.19.41SERVICE_HOST=172.16.19.41MYSQL_HOST=172.16.19.41RABBIT_HOST=172.16.19.41GLANCE_HOSTPORT=172.16.19.41:9292# Database Backend MySQLenable_service mysql# RPC Backend RabbitMQenable_service rabbit# Enable Keystone - OpenStack Identity Serviceenable_service key# Horizon - OpenStack Dashboard Serviceenable_service horizon# Enable Glance - OpenStack Image serviceenable_service g-api g-reg# Enable Cinder - Block Storage service for OpenStackVOLUME_GROUP="cinder-volumes"enable_service cinder c-api c-vol c-sch c-bak# Enable Heat (orchestration) Serviceenable_service heat h-api h-api-cfn h-api-cw h-eng# Enable Tempest - The OpenStack Integration Test Suiteenable_service tempest# Enable NoVNCenable_service n-novnc# Enabling Neutron (network) Servicedisable_service n-netenable_service q-svcenable_service q-agtenable_service q-dhcpenable_service q-l3enable_service q-metaenable_service q-meteringenable_service neutron## Neutron optionsQ_USE_SECGROUP=TrueFLOATING_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.210PUBLIC_NETWORK_GATEWAY="172.16.19.254"Q_L3_ENABLED=TruePUBLIC_INTERFACE=eth0Q_USE_PROVIDERNET_FOR_PUBLIC=TrueOVS_PHYSICAL_BRIDGE=br-exPUBLIC_BRIDGE=br-exOVS_BRIDGE_MAPPINGS=public:br-ex# VLAN configuration.Q_PLUGIN=ml2ENABLE_TENANT_VLANS=True# BranchesKEYSTONE_BRANCH=stable/mitakaNOVA_BRANCH=stable/mitakaNEUTRON_BRANCH=stable/mitakaGLANCE_BRANCH=stable/mitakaCINDER_BRANCH=stable/mitakaHEAT_BRANCH=stable/mitakaHORIZON_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 timeRECLONE=yes# LoggingDEST=/home/stack.mitakaLOGFILE=/home/stack.mitaka/logs/stack.sh.logVERBOSE=TrueLOG_COLOR=TrueSCREEN_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 secstest_with_retry - 3 secsapt-get-update - 6 secspip_install - 74 secsrestart_apache_server - 10 secswait_for_service - 9 secsgit_timed - 1 secsapt-get - 8 secsThis is your host IP address: 172.16.19.41This is your host IPv6 address: ::1Horizon is now available at http://172.16.19.41/dashboardKeystone is serving at http://172.16.19.41:5000/The default users are: admin and demoThe password: pass

出现以上消息即表示openstack已经安装完成,通过 进行访问,以及默认账户信息。

你可能感兴趣的文章
Could not find a storyboard named 'Main' in bundle NSBundle
查看>>
CocoaPods安装和使用教程
查看>>
Beginning Auto Layout Tutorial
查看>>
block使用小结、在arc中使用block、如何防止循环引用
查看>>
iPhone开发学习笔记002——Xib设计UITableViewCell然后动态加载
查看>>
iOS开发中遇到的问题整理 (一)
查看>>
Swift code into Object-C 出现 ***-swift have not found this file 的问题
查看>>
为什么你的App介绍写得像一坨翔?
查看>>
RTImageAssets插件--@3x可自动生成@2x图片
查看>>
iOS开发的一些奇巧淫技
查看>>
常浏览的博客和网站
查看>>
Xcode 工程文件打开不出来, cannot be opened because the project file cannot be parsed.
查看>>
点击button实现Storyboard中TabBar Controller的tab切换
查看>>
Xcode 的正确打开方式——Debugging
查看>>
打包app出现的一个问题
查看>>
iOS在Xcode6中怎么创建OC category文件
查看>>
Expanding User-Defined Runtime Attributes in Xcode with Objective-C
查看>>
iOS7 UITabBar自定义选中图片显示为默认蓝色的Bug
查看>>
提升UITableView性能-复杂页面的优化
查看>>
25 iOS App Performance Tips & Tricks
查看>>