CentOS7安装Devstack Mitaka

在VMware Centos7环境下, 使用Devstack安装Openstack Mitaka版本.

被Openstack的环境部署困扰了很久, 遇到的大多数问题是网络问题 (源在国外, 下载超时). 或者是软件版本的问题, 软件之间的相互依赖导致经常出现某个python的module在import的时候出错, 因为新版本已经不再沿用老版本的命名方式了.

搜了很多教程, 大部分是基于ubuntu和openstack L版的. 个人比较喜欢Centos, 而且M版出来这么久了, 也该试试了. 这次实践了一个Devstack的安装, 这里做一个简单的记录, 希望这个部署流程是可重复的. 如果有朋友按照这个流程部署遇到了问题, 希望可以留言交流一个遇到的那些坑= =.

记录一下在CentOS7环境下安装Devstack Mitaka版本的过程. 针对网络环境做了一些优化.

1. 安装环境

1.1 VM安装

使用VMware安装一台Centos 7 VM. 内存2GB, 硬盘100GB.

系统镜像: CentOS-7-x86_64-DVD-1511(1).iso

1.2 虚拟机网络配置

为VM设置一张NAT网卡. 这张NAT网卡使得VM可以访问公网. 另一方面, 为了在Windows中使用Xshell远程连接VM, 为这张NAT网卡配置了端口转发. 具体如下图所示:
virtualbox端口转发

2. 基本环境配置

2.1 关闭selinux

[root@devstack ~]# vim /etc/selinux/config
# SELINUX=enforcing     #注释掉
SELINUX=disabled        #增加

[root@devstack ~]# systemctl stop firewalld 
[root@devstack ~]# systemctl disabled firewalld 

2.2 设置使用本地Centos源

[root@devstack yum.repos.d]# scp server:/var/www/html/centos/help/repos/local_mitaka.repo .
[root@devstack yum.repos.d]# yum clean all
[root@devstack yum.repos.d]# yum makecache

3. 安装Devstack

3.1 准备Devstack

下载代码, 指定clone mitaka版本:

[root@devstack ~]# cd /home
[root@devstack home]# git clone http://git.trystack.cn/openstack-dev/devstack.git -b stable/mitaka  
或
[root@localhost home]# scp -r server:/var/www/html/centos/help/sourcecode/mitaka/devstack .

3.2 创建stack用户

[root@devstack tools]# cd /home/devstack/tools/
[root@devstack tools]# ./create-stack-user.sh 

3.3 安装pip并改为豆瓣源

[root@devstack home]# yum install python-pip -y
[root@devstack home]# vim /etc/pip.conf

[global]
index-url = http://pypi.douban.com/simple
[install]
trusted-host = pypi.douban.com

3.4 准备一些安装过程中会自动下载的文件

事先下载好的Mitaka各组件的源代码:

[root@devstack home]# cd /opt/stack/
[root@devstack stack]# scp -r server:/var/www/html/centos/help/sourcecode/mitaka/* .
[root@devstack stack]# ls
cinder  glance  horizon  keystone  manila  manila-ui  neutron  nova  python-manilaclient  swift

或者逐一下载: 
git clone http://git.trystack.cn/openstack/nova.git /opt/stack/nova -b stable/mitaka

事先准备好get-pip.py:

[root@devstack files]# scp -r server:/var/www/html/centos/help/files/get-pip.py .
[root@devstack files]# scp -r server:/var/www/html/centos/help/files/cirros-0.3.4-x86_64-disk.img .
[root@devstack files]# scp -r server:/var/www/html/centos/help/files/manila-service-image-master.qcow2 .

Devstack相关文件:
在server节点查看如下:

[root@bak files]# ls
cirros-0.3.4-x86_64-disk.img  get-pip.py                         manila-service-image.qcow2
cirros.img                    manila-service-image-master.qcow2  manila-ubuntu-core.qcow2

3.5 修改devstack目录权限,让stack用户可以运行

[root@devstack files]# chown -R stack:stack /home/devstack
[root@devstack files]# chmod 777 /opt/stack -R

3.6 切换到stack用户下

[root@localhost ~]# su stack

3.7 https协议替代git协议

因为本人所在的网络环境貌似禁用了git协议, 因此这里通过配置采用https协议代替了git协议:

[stack@devstack devstack]$ git config --global url."https://".insteadOf git://

3.8 创建编辑localrc文件,添加以下内容:

[stack@devstack files]$ cd /home/devstack
[stack@devstack devstack]$ vim local.conf

local.conf 是这次安装devstack的配置文件. 为了加速安装过程, 采用了九州云devstack源. 这里特别感谢一下, 比用国外的源快了真不是一星半点= =.

[[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://192.168.44.128/centos/help/files/cirros-0.3.4-x86_64-disk.img"

# Misc
ADMIN_PASSWORD=admin
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=$ADMIN_PASSWORD

# Target Path
DEST=/opt/stack

# Enable Logging
LOGFILE=$DEST/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=False
SCREEN_LOGDIR=$DEST/logs

KEYSTONE_TOKEN_FORMAT=UUID

# Nova
enable_service n-novnc n-cauth

# Neutron
disable_service n-net
ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron
ENABLED_SERVICES+=,q-lbaas,q-vpn,q-fwaas
HOST_IP=192.168.44.131    #虚拟机网卡eth0 ip地址
FIXED_RANGE=10.0.0.0/24   #固定子网,随意指定  10.0.0.1
#NETWORK_GATEWAY=10.0.0.1  #固定子网网关
FLOATING_RANGE=192.168.44.0/24
PUBLIC_NETWORK_GATEWAY="192.168.44.1"
Q_FLOATING_ALLOCATION_POOL=start=192.168.44.200,end=192.168.56.210
PUBLIC_INTERFACE=eno16777736
Q_L3_ENABLED=True
Q_USE_PROVIDERNET_FOR_PUBLIC=True
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex

# Swift
#enable_service s-proxy s-object s-container s-accounts
#SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5

# Cinder
VOLUME_GROUP="cinder-volumes"
ENABLED_SERVICES+=,cinder,c-api,c-vol,c-sch,c-bak

# Ceilometer
#enable_service ceilometer-acompute ceilometer-acentral ceilometer-anotification ceilometer-collector ceilometer-api
#enable_service ceilometer-alarm-notifier ceilometer-alarm-evaluator

# Heat
disable_service heat h-api h-api-cfn h-api-cw h-eng
disable_service tempest

# Trove
disable_service trove tr-api tr-tmgr tr-cond

# Sahara
disable_service sahara

# Manila
enable_plugin manila http://git.trystack.cn/openstack/manila.git stable/mitaka

OFFLINE=False

注意:若需要安装其他服务,请参考其他资料。

3.9 开始安装

[stack@localhost devstack]$ ./stack.sh

注意:使用的是stack用户运行。

安装成功, 得到如下信息:

========================
DevStack Components Timed
========================

run_process - 87 secs
pip_install - 1174 secs
restart_apache_server - 14 secs
wait_for_service - 48 secs
yum_install - 757 secs
git_timed - 947 secs



This is your host IP address: 10.0.2.15
This is your host IPv6 address: ::1
Horizon is now available at http://10.0.2.15/dashboard
Keystone is serving at http://10.0.2.15:5000/
The default users are: admin and demo
The password: admin
2016-08-11 02:37:46.670 | stack.sh completed in 4318 seconds.

4. 淌过的坑

安装过程的坑实在是太多了, 很遗憾没有一一记录下来, 能记得多少写多少吧.

4.1 git协议不可用的情况解决

在某些情况下, git协议可能被网络环境禁用, 会出现”fatal: unable to connect to git.openstack.org”的问题. 这时, 可以通过https协议来代替git协议. 具体的操作有两种方式:
(1) 通过指令
运行指令:

git config --global url."https://".insteadOf git://

(2) 通过配置Devstack配置文件
默认情况下的配置文件是:

GIT_BASE=${GIT_BASE:-git://git.openstack.org}

为了使用https协议, 修改为:

GIT_BASE=${GIT_BASE:-https://git.openstack.org}

4.2 更改为163的centos源

网上有些教程说, 使用163的centos源速度会更快.

使用说明:http://mirrors.163.com/.help/centos.html

[root@localhost ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost ~]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache

但是, 我在实践的过程中, 有一次安装失败就是因为使用了163的源, 具体错误提示不记得了, 大意是安装包broken. 最后改回了centos的官方源, 安装通过. 有遇到一样情况的朋友可以反馈一下具体的错误叫什么.

4.3 mariadb root用户密码不对

因为在虚拟机上尝试安装了好多次Devstack, local.conf文件也使用了好多个网上教程的方案, 可能是因为设置的密码不一样的原因, 最后一次安装的时候出现了mariadb root用户密码不对的情况. 通过修改root用户密码的方式应该可以解决, 没有去尝试. 修改数据库root用户密码可以参考这个教程MySQL和MariaDB如何修改root密码, 我没有实践过.

参考资料

  1. Trystack国内Openstack源
  2. English0523: 再玩 DevStack(Mitaka版)- 基于 trystack.cn 源
  3. Yikun: 搭建OpenStack开发环境
  4. 陈沙克日志: OpenStack项目系列介绍(3) Devstack
  5. Devstack安装Liberty by 徐超笔记
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值