Ubuntu16安装OpenStack

前言

《VirtualBox中安装OpenStack》一文中,已经成功安装过openstack。如今,确定了研究方向就是OpenStack。第一步要做的,就是在实体机安装配置OpenStack。

由于版本更新,devstack目前只支持ubuntu16,而机房服务器使用的都是ubuntu14.04,很尴尬。尝试了旧的newton、mitaka、liberty,但是devstack依赖的keystone项目中没有了这三个分支,失败;尝试了新的pike、queens,但是ubuntu14中缺少相应的包,失败。

找到了DevStack 安装 grizzly-eol 版本 OpenStack一文,以为在local.conf中把分支改为tag就可以了。然而,报错接连不断,解决了N个小怪,随便出来个大BOSS就我拦住了。

最终,把系统换成了Ubuntu16,计划使用devstack安装最新版Queens,主要参考DevStack官方文档《优雅安装OpenStack》使用devstack安装OpenStack 双节点部署

目标

本文的目标是搭建一个 all-in-one OpenStack,所有核心服务都安装在ccrfox105节点上,节点IP为172.16.0.105。

核心服务包括:身份认证服务keystone,镜像服务glance,计算服务nova(默认使用KVM虚拟化),网络服务neutron,仪表板horizon。也需要包含一些支持服务,例如:SQL数据库,消息队列和NTP。

环境准备

更换sources.list(可选)

参考《Ubuntu更换源列表》

1、备份源列表文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

2、编辑源列表文件
sudo vim /etc/apt/sources.list

修改为:

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse

3、更新资源包
sudo apt-get update

时间同步

1、同步时区
执行命令sudo dpkg-reconfigure tzdata,然后选择Asia,Shanghai。

2、安装时间同步工具

sudo apt-get install ntpdate
sudo ntpdate cn.pool.ntp.org
date

devstack下载

1、安装git
sudo apt-get install git

2、下载devstack并切换到queens分支
git clone https://git.openstack.org/openstack-dev/devstack -b stable/queens

创建stack用户

方法一:
1、执行创建用户脚本
sudo devstack/tools/create-stack-user.sh

2、将devstack目录放到/opt/stack中并设置权限
sudo mv devstack /opt/stack

sudo chown -R stack:stack /opt/stack

3、切换到stack用户
sudo su - stack

方法二:
1、添加stack用户
sudo useradd -s /bin/bash -d /opt/stack -m stack

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

3、将devstack目录放到/opt/stack中并设置权限
sudo mv devstack /opt/stack

sudo chown -R stack:stack /opt/stack

4、切换到stack用户
sudo su - stack

更换pip源(可选)

参考《python pip更换国内源》

1、安装python
sudo apt-get install python

2、创建pip.conf
mkdir ~/.pip && vim ~/.pip/pip.conf

写入内容如下:

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host = http://mirrors.aliyun.com/pypi/simple/

编译安装

1、拷贝local.conf
cd devstack && cp samples/local.conf ./

2、修改local.conf密码配置为:

ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD

同时在最后添加:

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

3、拷贝local.sh
cp samples/local.sh ./

4、执行安装
./stack.sh

安装报错:E: Unable to locate package libsystemd-dev。
(1)安装libsystemd-dev,sudo apt install libsystemd-dev,没有找到libsystemd-dev这个包。

(2)查找libsystemd-dev,sudo apt search libsystemd-dev,果然没有找到libsystemd-dev。

(3)猜测是sources.list的锅,改成原sources.list,问题解决。

然后报错pip版本太低,升级却失败,删除.pip目录,问题解决。。。

接下来,顺利安装,最后报错:

2018-06-27 00:47:54.156 | More than one SecurityGroup exists with the name 'default'.
2018-06-27 00:47:55.193 | More than one SecurityGroup exists with the name 'default'.
2018-06-27 00:47:55.246 | ++./stack.sh:main:1390                   err_trap
2018-06-27 00:47:55.254 | ++./stack.sh:err_trap:551                   local r=1
2018-06-27 00:47:55.261 | stack.sh failed: full log in /opt/stack/logs/stack.sh.log.2018-06-27-082830
2018-06-27 00:47:55.264 | Error on exit

参考如何修改默认OpenStack安全组中的规则,查看securitygroup规则,openstack security group list

在多租户OpenStack环境中,存在多个名为“default”的安全组。在这种情况下,请使用安全组ID而不是安全组名称。云管理员可以使用OpenStack安全组列表来显示所有安全组及其当前分配的名称。

再次安装

我觉得上面的安装好像失败了,打算重装。
1、先在devstack目录中,执行卸载

./unstack.sh
./clean.sh

2、再次安装
./stack.sh

最后还是报同样的错误。不管了,测试下看看。

测试使用

1、访问 http://172.16.0.105/dashboard ,用户名输入admin,密码输入secret,登录控制台。

2、项目,网络,创建网络和路由


image

3、项目,计算,创建实例


image

报错:

Error: Failed to perform requested operation on instance "vm1", the instance has an error status: Please try again later [Error: Host 'ccrfox105' is not mapped to any cell].

我们查看一下openstack的服务是否正常:

openstack service list
openstack endpoint list
openstack compute service list

提示:Missing value auth-url required for auth plugin password
解决办法:进入devstack目录,执行

source openrc voidking project
source openrc admin admin

虽然Missing value auth-url required for auth plugin password的问题解决了,但是还是无法创建实例。

参考OpenStack应用、报错,执行nova-manage cell_v2 discover_hosts,问题解决。

网络问题

实例创建成功了,也分配了浮动IP为172.24.4.7,但是从ccrfox105上却ping不通实例。参考Openstack创建实例--horizon篇,进行如下设置:

1、项目,网络,安全组,创建安全组。


image

2、管理规则,添加出口入口icmp规则和tcp规则。


image

3、实例的安全组选择新建的规则。


image

然后,再次ping 172.24.4.7,网络就通了。

测试访问

1、项目,计算,实例,实例名称,日志。即可看到cirros系统的用户名和密码。


image

2、然后在ccrfox105上,ssh登录cirros系统。


image

卸载devstack

如果devstack安装失败或者不再需要,那么可以对它进行卸载。

执行./unstack.sh./clean.sh,卸载openstack。然后删除stack用户,删除/opt/stack目录。

或者,干脆重装系统,因为卸载后会有很多遗留问题。

后记

至此,完成了单节点OpenStack的安装,也进行了简单地创建实例和测试,nice。

接下来有两个计划,一个是尝试OpenStack更多的操作和设置,以便熟悉这个平台。另一个是使用devstack安装多节点OpenStack,或者手动安装多节点Openstack。计划搭建一个Controller节点和两个Compute节点。

在安装时,自作聪明地更换了sources.list和pip.conf,以为可以加速安装,没想到却给自己挖了坑,同学们引以为鉴啊。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,616评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,020评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,078评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,040评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,154评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,265评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,298评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,072评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,491评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,795评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,970评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,654评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,272评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,985评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,815评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,852评论 2 351

推荐阅读更多精彩内容