openstack-packstack是一个all in one安装openstack的工具,安装步骤很简单,几个步骤就可以:
yum install -y http://rdo.Fedorapeople.org/rdo-release.rpm
yum install -y openstack-packstack
packstack --allinone
然而我在安装过程中出现了python依赖的报错,如下:
Requires: python(abi) = 2.7
Installed: python-2.6.6-64.el6.x86_64
python(abi) = 2.6
显示需要的是python2.7,安装的却是2.6。我的centos6系统自带了python2.6,升级到python2.7后,由于/usr/bin/yum
必须用python2.6执行,所以保留了python2.6没有卸载。起初我以为是yum对本地python的检测出了问题,折腾了好久没有头绪,后来发现stackflow上有很多人在安装其它软件时也出现类似问题,评论说可能是repo的版本不对,是centos7而非centos6的。于是我打开/etc/yum.repo.d/rdo-release.repo
看了一下(yum install -y http://rdo.Fedorapeople.org/rdo-release.rpm
这个指令会在/etc/yum.repo.d/
目录下下载几个rdo的repo),果然base_url是指向一个包含centos/7/
的地址。
我们可以看一下repos.fedorapeople.org里openstack各个版本的库,https://repos.fedorapeople.org/repos/openstack/ ,可以发现icehouse版本之后(openstack的版本名称首字母是按照a,b,c的字母顺序排下来的)就没有区分epel6和epel7了,也就是都是centos7的源了。
于是我们可以自己yum.repo.d目录下新建一个openstack.repo,文本内容如下:
[openstack]
baseurl=https://repos.fedorapeople.org/repos/openstack/EOL/openstack-icehouse/epel-6
gpgcheck=0
然后
yum update
yum makecache
就可以执行yum install openstack-packstack
了!