Monthly Archives: 三月 2014

You are browsing the site archives by month.

虽然这个 OpenStack “自动”安装脚本已经写了有一段时间了,但一直也只是躺在 Github 上,没放出来,这几天总结下自己的客座生活,顺便把这个脚本拿出来吧 :-)

先说说这个简陋地轮子的用处:由于经常要测试,不时要往一些新机器装 OpenStack 或者将一些机器重装,我们既不想用 Devstack 装 Git 上的最新版,也不想用 PackStack 安装——感觉不能完全 controll :-)。因为之前跟着官方的文档(真心很长)装,感觉大部分过程都知道,所以就 follow 官方的安装文档写了下面的安装脚本,很简陋,只是用来避免照官方文档手打之苦:-) 。

需要说明的是,这个安装脚本补了一些我们按官方过程走时踩的坑,还做了一些假设,跑脚本前最后先看下,比如我们默认使用 GRE 配置网络,还默认了 mysql 的安装密码,还要求用户配好 hosts。当然可以自己改。

最出坑的地方当然是网络,首先 OpenStack 是可以安装在从只有一个网卡的一台虚拟机上到上千台机器的集群的,脚本默认网络节点有两个网卡,你也可以只用一个,但是 OVS 的网桥可千万不能省:-) 首先,请保证需要开得端口都开着,比如 MySQL 的
3306,HTTP 的80,NTP 的123(如果你像我只前一样在局域网自己搭建 NTP)等等。然后,Neutron 官方文档在 sudo 上有 bug,虽然我提交过了,但是貌似老版的文档并没有更新,就是这句:openstack-config --set /etc/neutron/neutron.conf agent \
root_helper sudo "neutron-rootwrap /etc/neutron/rootwrap.conf"
,一定要加引号,不然 neutron server 启不起来的,还有 neutron 的 sudo 工作也常会出些问题,需要我们干预下,在 sudoer 文件里加一行“neutron ALL=(ALL) NOPASSWD: ALL”,还有默认的“Defaults !visiblepw”也需要改成“Defaults visiblepw”。此外,建立 GRE 通道千万不要在 local ip 上用别名,必须用真实的 ip,不然也不会工作的。再就是 Horizon,为了能用多种域名/IP访问 Horizon,需要设置好 ALLOW-HOSTS,还有为了让 admin 正确登录,需要设置 OPENSTACK_KEYSTONE_DEFAULT_ROLE。最后,SELinux 经常阻止我们正常登录,不想调试像快速解决可以直接关掉它。

还有个深坑啊,就是官方文档居然没有说明我们在用 OVS 改了网后需要设置 network-scripts!怎么设置可以参考我的脚本。然后网络最好开开 namespace,方便些。还有,要用 OVSHybridIptablesFirewallDriver 来实现安全组的话,一定要在 nova 设置写好“libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver”,这点官方文档也没有说!

最后,安装基于 OpenStack Havana (2013.2.2),代码由 Redhat 打包,祝大家安装时能少遇坑,早享受! Read More →

New MQ option to Buildbot

Damon

Organization: Buildbot

Short description: As of version 0.9.0, Buildbot uses a message-queueing structure to handle asynchronous notifications in a distributed fashion. The current Message Queue works but have some problems, from costing to function, from availability to race condition. According to community’s discussion, I’ll implement a new MQ plugin and try to solve the data-ordering problem.

Read More →

据说被php坑过的人很多,好吧,今天又加了我一个。

前几天高高兴兴地给自己搭建了一个 DokuWiki,纯粹出于整理知识加方便书写,写的东西一般不会太大或太复杂,长一点的也就是一片记录 keystone开发环境 搭建中碰到的问题以及相关方提的 bug 列表,搭建 DokuWiki 中遇到的些个小坑,看 Python 中 Monkey Patch 留下的笔记,还有看 Mozilla 提供的 GSoC Sample Proposal 和如何将开源经历添加到个人简历等留下的笔记,还有自己之前写的 GSoC 的 proposal。

今天都没了 T^T ……

今天下午,我还在高高兴兴地根据自己之前在 Wiki 上留的链接列表写文档,忽然发现其实可以再加一篇的,于是点击“登陆”,打算修改下……结果跳转到的页面不是熟悉的登陆页,而是安装页。

吓,虽然我没删安装页,但是安装后不应该再弹出来了啊,我这么小的站也不值得人去黑吧。

于是我脑残地以为站抽风了,没动页面,不假思索的点击了“保存”……

结果又跳到了这个安装页面,说我没输密码。

我猛然间意识到了问题的严重性,在 install.php 保存会不会充置数据?

立刻登上 SAE 的后台,连到应用打算先把应用打包下下来,转念又想,我应该先查下代码目录,看看数据还在不在(Dokuwiki 无数据库,数据以文本形式存在网站目录下,对于 SAE 来说就是代码目录)。一看,data 文件夹已经空空荡荡。

只剩下一个 start.txt。

里面还写着“欢迎使用 DokuWiki for SAE ”。

当时我就心凉了,打包下载,数据也没有,填好 install.php 保存也没有任何反应,应用好像坏了。

检查日志也没有什么异常。

install.php 会删除 data 目录这么脑残的设计是谁想出来的?如果不是 install.php 删的那么到底是发生了什么?

还好记录的东西不算太多,也只有 GSoC 的 proposal 一篇对外发过链接。

抽时间整理下。

然后自己写一个或者改一个 Wiki 程序好了。 Read More →