CentOS 6.5 通过 DevStack 部署 OpenStack Icehouse 笔记

参考 军卫的 http://blog.chinaunix.net/uid-20940095-id-4061153.html 里的配置文件,

以及 陈沙克的 http://www.chenshake.com/devstack-installation-and-testing/ 这篇博文,

还有官方文档http://devstack.org/guides/single-machine.html


Devstack 使得我们能够一键部署 Openstack,核心是配置文件 localrc (新版的用一个local.conf来配置,不过用localrc也是可以的)。


首先下载稳定版本的 devstack

sudo apt-get install git -y || yum install -y git
cd /home
git clone -b stable/icehouse  https://github.com/openstack-dev/devstack.git

新版的devstack不允许用root用户启动,因此新建一个stack用户 


切换devstack目录用户,进入目录 (注意,后面的操作都应该下stack用户下进行

cd /home/devstack/tools/
./create-stack-user.sh

chown -R stack:stack /home/devstack
cd /home/devstack

su stack

进到目录后发现  并没有localrc文件,只有一个stackrc文件,

打开stackrc文件大概看一下,发现stackrc回去尝试打开localrc文件,如果localrc文件有用户配置的选项,则用用户配置覆盖掉stackrc里的默认配置,

因此,不知道localrc中的配置项是什么意思的时候,可以在stackrc里搜索一下,看一下说明。


localrc的配置主要参考了军为的博文,另外因为我的电脑之前手动配过Openstack,因此必须停掉所有openstack服务,数据库的root密码要先清空(方法自己百度)

要把/etc/下的所有openstack项目文件夹删掉,例如/etc/nova等等,不然会出错。我在配Openstack的时候,创建了cinder-volumes,因此在localrc中,

用 cinder-volumes替代了stack-volumes.


配置文件如下:


  1. # Misc
  2. HOST_IP = xxx.xxx.xxx.xxx

  3. DATABASE_PASSWORD=123456 
  4. ADMIN_PASSWORD=123456 
  5. SERVICE_PASSWORD=123456 
  6. SERVICE_TOKEN=123456 
  7. RABBIT_PASSWORD=123456 
  8.  
  9. # Reclone each time 
  10. RECLONE=true 
  11.   
  12. # Python enviroments 
  13. #OFFLINE=true 
  14.   
  15. ## For Keystone 
  16. KEYSTONE_TOKEN_FORMAT=PKI 
  17.   
  18. ## For Swift 
  19. #SWIFT_REPLICAS=
  20. #SWIFT_HASH=011688b44136573e209e 
  21.   
  22. # Enable Logging
  23. LOGFILE=/opt/stack/logs/stack.sh.log 
  24. VERBOSE=True 
  25. LOG_COLOR=True 
  26. SCREEN_LOGDIR=/opt/stack/logs 
  27.   
  28. # Pre-requisite 
  29. ENABLED_SERVICES=rabbit,mysql,key 
  30.   
  31. ## If you want ZeroMQ instead of RabbitMQ (don't forget to un-declare 'rabbit' from the pre-requesite) 
  32. #ENABLED_SERVICES+=,-rabbit,-qpid,zeromq 
  33.   
  34. ## If you want Qpid instead of RabbitMQ (don't forget to un-declare 'rabbit' from the pre-requesite) 
  35. #ENABLED_SERVICES+=,-rabbit,-zeromq,qpid 
  36.   
  37. # Horizon (Dashboard UI) - (always use the trunk) 
  38. ENABLED_SERVICES+=,horizon 
  39. #HORIZON_REPO=https://github.com/openstack/horizon 
  40. #HORIZON_BRANCH=master 
  41.   
  42. # Nova - Compute Service 
  43. ENABLED_SERVICES+=,n-api,n-crt,n-obj,n-cpu,n-cond,n-sch,n-novnc,n-cauth
  44. IMAGE_URLS+=",https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img" 
  45.   
  46. ## Nova Cells 
  47. ENABLED_SERVICES+=,n-cell 
  48.   
  49. # Glance - Image Service 
  50. ENABLED_SERVICES+=,g-api,g-reg 
  51.   
  52. # Swift - Object Storage 
  53. #ENABLED_SERVICES+=,s-proxy,s-object,s-container,s-account 
  54.   
  55. # Neutron - Networking Service 
  56. If Neutron is not declared the old good nova-network will be used 
  57. ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron 
  58.   
  59. ## Neutron - Load Balancing 
  60. ENABLED_SERVICES+=,q-lbaas 
  61.   
  62. ## Neutron - VPN as a Service 
  63. ENABLED_SERVICES+=,q-vpn 
  64.   
  65. ## Neutron - Firewall as a Service 
  66. ENABLED_SERVICES+=,q-fwaas 
  67.   
  68. # VLAN configuration - LinuxBridge + VLAN模式
  69. Q_PLUGIN=linuxbridge 
  70. ENABLE_TENANT_VLANS=True
  71. TENANT_VLAN_RANGE=1920:1930
  72. PHYSICAL_NETWORK=default
  73. LB_PHYSICAL_INTERFACE=eth0

  # VLAN configuration - Open VSwitch + VLAN模式  (这种配置我试了下,创建虚拟机的时候会报一个vif-create的错误,解决不了。。暂时就不用了) 
  #ENABLE_TENANT_VLANS=True
  #TENANT_VLAN_RANGE=1920:1930
  # PHYSICAL_NETWORK=default
  #OVS_PHYSICAL_INTERFACE=eth0

  1. # GRE tunnel configuration 
  2. #Q_PLUGIN=ml2 
  3. #ENABLE_TENANT_TUNNELS=True 
  4.   
  5. # VXLAN tunnel configuration 
  6. #Q_PLUGIN=ml2 
  7. #Q_ML2_TENANT_NETWORK_TYPE=vxlan 
  8.   
  9. # Cinder - Block Device Service 

  10. VOLUME_GROUP="cinder-volumes"
  11. ENABLED_SERVICES+=,cinder,c-api,c-vol,c-sch 
  12.   
  13. # Heat - Orchestration Service 
  14. ENABLED_SERVICES+=,heat,h-api,h-api-cfn,h-api-cw,h-eng 
  15. #IMAGE_URLS+=",http://fedorapeople.org/groups/heat/prebuilt-jeos-images/F17-x86_64-cfntools.qcow2" 
  16.   
  17. # Ceilometer - Metering Service (metering + alarming) 
  18. CEILOMETER_BACKEND=mysql 
  19. ENABLED_SERVICES+=,ceilometer-acompute,ceilometer-acentral,ceilometer-collector,ceilometer-api 
  20. ENABLED_SERVICES+=,ceilometer-alarm-notify,ceilometer-alarm-eval 
  21.   
  22. # Apache fronted for WSGI 
  23. APACHE_ENABLED_SERVICES+=keystone,swift



有了配置文件localrc之后,就可以执行 

./stack.sh

顺利的话,openstack就部署完成了,

但是!!

部署开源软件,怎么可能这么顺利呢!

过程中会遇到各式各样的问题,有的重新执行下 ./stack.sh就可以了,有的就需要手动解决。

日志默认是放在 /opt/stack/logs/ 目录下的,

报了错就看下日志到底是什么问题,

我部署的时候遇到的一个最蛋疼问题是报缺少包 Kombu ,需要 kombu版本呢大于2.4.8什么的,

但是我检查了下,明明有装这个包,而且是3.x版的,

多次尝试后,手动卸载 kombu,安装2.x版的,最后就成功了

pip uninstall kombu
pip install 'kombu>2.4,<3.0'


到这部顺利的话,就可以打开dashboard了,

然后创建一个instance试试,结果发现不行,

检查了一下nova api (/opt/stack/logs/screen-n-api.log)的日志,看到创建实例过程中报了一个错,

OpenStack Icehouse error: Virtual Interface creation failed


百度了下,发现军卫的博客上也有写这个错误的解决方法 http://blog.csdn.net/ustc_dylan/article/details/24603743


   解决方法: 修改nova.conf配置文件,将如下两个配置项改为

  1. vif_plugging_timeout = 10
  2. vif_plugging_is_fatal = False


但我试了下,发现还是不行,


仔细检查了下,通过 ps aux|grep nova 看到nova-compute用的配置文件不是nova.conf,而是nova-cells.conf,


修改 /etc/nova/nova-cells.conf中的vif选项,这次创建实例成功了。


但是在网页上通过vnc访问虚拟机还是不行(在服务器上用浏览器访问是可以的)


猜测是iptables的问题,于是打开了5900:6000端口,

发现还是不行,看了下nova.conf和nova-cells.conf里的vnc配置,

发现vnc是要走6080端口绕一下的,于是在iptables中把6080端口打开,

重启iptables,终于可以远程接入虚拟机了!



to be continue..


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值