在Centos6.5 x64虚拟机上搭建OpenStack icehouse 控制节点

    本文搭建的OpenStack是多节点双网卡模式,节点类型包括控制节点和计算节点,没有网络节点。这里搭建的是控制节点,因为服务比较多,因此安装步骤比计算节点复杂一些。

    这里不详细介绍每一步,因为我也是按照别人的文档来搭建的,个人觉得这个过程里最重要的就是文档,被坑过才有这多么痛的领悟哭。因此这里主要是po出参考的链接参考教程,希望给看到的初学者一点帮助,减少不必要的时间浪费。

提醒:注意版本,这个文档针对OpenStack icehouse Centos6.5,也是只有控制节点和计算节点的类型。此外虚拟机请记得按需要保存快照,便于回滚。

参考链接:https://github.com/emagana/OpenStack-Icehouse-Install-Guide/blob/master/OpenStack-Icehouse-Installation.rst#configure-networking-on-controller-node

有几处需要注意的地方

(1)教程在/etc/yum.repos.d/rdo.repo里给的baseurl=http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/epel-6已经失效了,打开也是错的,可以改成https://repos.fedorapeople.org/repos/openstack/EOL/openstack-icehouse/epel-6/ 这个链接通过网页打开可以看到里面很多.rpm文件。

(2)配置Neutron的时候,在vi /etc/sysctl.conf后执行sysctl  -P 报错
    error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
    error: "net.bridge.bridge-nf-call-iptables" is an unknown key
     error: "net.bridge.bridge-nf-call-arptables" is an unknown key

    解决办法比较简单:

    modprobe bridge
    lsmod|grep bridge

(3)最后登录的页面是http://controller/dashboard,而非http://controller/horizon(会得到404)。

(4)因为初学,担心复杂的过程中出错,基本全都通过复制粘贴,这很不安全,因为所有这样做搭建出来的用户名和密码都一样,实用的话还是注意一些吧。此外,我注意到有些教程给的OS_SERVICE_TOKEN是随机获取的一个序列值TOKEN,而这个教程给的就是ADMIN,太过简单了。

(5)步骤里很多涉及到改配置文件的操作,有些是新创建文件,有些是在原有文件上修改,注意有些变量直接是被注释,没有被设置,因此只需要复制粘贴教程就行,而有些已经设置了,需要替换,可能要挨个检查,但文档里都是写的Edit,总之需要细心谨慎。

(6)glance设置里有处source creds,没有创建过creds文件,这里直接跳过就行。

(7)注意命令返回结果,如果出错的话尽快解决,有一些像是出错但是没有明确说error的搜一搜或者跳过吧。

小记

    折腾了很久,遇到了很多问题,其中最多的是一个类似

(OperationalError) (1045, “Access denied for user ‘keystone’@'openstack1′ (using password: YES)”)

    的问题,返回的错误可能不是这个,但是去查日志最后都是这个原因。也查了一些资料,原因是因为mysql没有给controller访问这个数据库的权限,但是很明显在每次创建数据库的时候我们都附加了类似如下的语句,分别给本机和其他主机访问的权限。

mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';
    有一个看上去还算靠谱的方法,先是设置/etc/my.conf  bind_address=0.0.0.0,还将/etc/hosts里的controller复制到了127.0.0.1的主机名后面。当时通过了一次,但是后续还是遇到了上面的问题。
    最后的解决办法就是找了个新教程(给的这个),这里面bind_address=controller并没有改变,但是我注意到这里面所有的口令都不是用环境变量代替的,而是实实在在的口令"password",但我不清楚这是不是根本原因。

    总的来说,觉得浪费这么多时间的原因在于不懂这些步骤的含义,比如说不知道各种xxxxx_DEPASS的值是什么,出错的时候显示的是”YES“,简直一窍不通,真的弄懂还是需要很多基础的,大家共勉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值