热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用devstack安装部署openstack

devstack虽然号称是最傻瓜的部署openstack方式,但是貌似只适合单机开发部署,也就是实验性质的,真正部署产品级别的openstack还是比较麻烦的。devstack官网(http://devstack.org/)上就简单的两步:1、gitclonegit://github.com/openstack-dev
devstack虽然号称是最傻瓜的部署openstack方式,但是貌似只适合单机开发部署,也就是实验性质的,真正部署产品级别的openstack还是比较麻烦的。
devstack官网(http://devstack.org/)上就简单的两步:

1、git clone
git://github.com/openstack-dev/devstack.git

2、cd devstack; ./stack.sh

但devstack貌似如果安装的姿势不对,各种坑爹的bug。
首先讲一下我成功部署的环境:
win7 64 bit里开VMware虚拟机,安装Ubuntu 12.04 32 bit
Desktop。

如果Ubuntu是32bit的,那么运行stack.sh之前,需要修改stackrc Line 115-116中,两处的cirros-0.3.0-x86_64-uec都改成cirros-0.3.0-i386-uec,或者全局替换所有的也没关系。原因就是本文后面的“注意点 1”所讲的,让openstack加载的demo image是32bit的,而不是64bit的。若这个文件下载出错,也可以手动进入http://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-i386-uec.tar.gz,下载后的文件放在/opt/stack/devstack/files下面,再次运行stack.sh。
第一次运行stack.sh时,会指示输入一连串密码。以后再运行stack.sh,就不会要求输入密码了,因为第一次输入的密码已经被保存在localrc中了,再次运行时将默认使用该密码。(11.10里有bug,不会在home里的devstack下生成localrc,但是/opt/stack/devstack下还是会有localrc。)
openstack需要在stack用户下配置和运行,因此stack.sh运行一开始,就会给系统创建名为stack的用户。这个用户的主目录在/opt/stack/,而不是一般的/home/stack。以后如果要用命令行配置openstack,一般都要进入stack用户身份。
运行成功之后,如图显示:


可以用浏览器登录所指示的ip,如图中的10.214.24.146,默认用户名是admin和demo,密码是一开始自己设置的。所登录的管理界面是openstack的dashboard,是一个Django程序。


可以用已经存在的demo image创建一个虚拟机实例。创建后要稍等片刻,等到实例的状态显示“Active”后,才能通过VNC控制台进入虚拟机。貌似直接显示的VNC无法输入命令,需要点击上方蓝色提示框的“Click here to show only VNC”,之后才能正常输入用户名密码登录,如图:


用默认的用户名cirros、密码cubswin:)登录成功之后,就可以操控该虚拟机实例了:


部署的注意点:
1、上述环境中的stack.sh运行后会有一个bug,就是清除了DNS配置文件/etc/resolv.conf的内容,里面所有nameserver项都没有了,所以运行前可以先备份一下,或者运行后再修改,都是可以的。
2、VMware所在的环境(即这里的Win 7)应该关系不大,但是安装的Ubuntu是32bit还是64bit对后面使用openstack加载镜像时是很有关系的,因此最好慎重选择。
简单来说,就是如果openstack所在的操作系统环境是32bit的,那么就openstack里所虚拟的操作系统image就只能是32bit的,反之就只能是64bit的。
如图所示,在32bit的Ubuntu上运行的openstack如果试图部署64bit的image所生成的实例,在boot时会失败,并提示如下:


3、最新版devstack貌似在ubuntu 11.10上有bug。
部署失败的环境:我一开始是用
独立系统32bit Ubuntu 11.10 Desktop,git最新的devstack,
结果貌似最新版devstack还不太稳定,会出现奇怪的bug:stack.sh在部署好openstack组件组件之后,有一步是安装一个仅为6M的小image(stack.sh里叫做Install Images),用来做demo用的,但是在运行到
TOKEN=$(keystone token-get | grep ‘ id ‘ | get_field2)
这句时,TOKEN获得的内容为空,导致后面用glance创建三个image时所使用的TOKEN不正确,因此无法创建,stack.sh中断运行。不过虽然有这个BUG,但貌似openstack还是装好了,只是demo没有弄好。
4、运行stack.sh时,网络环境一定要好。
如果选的软件源速度太慢,或者网络环境本身太差(=_=比如ZJU曹光彪主楼的烂网,强烈建议用有线+30米以上VPN),运行stack.sh下载不到依赖软件时会终止运行。万一终止运行时,可以再重新跑一遍,反正已经下载和安装的依赖软件它不会重复搞的。如果重复多次还是遇到“无法获取”或者“校验码错误”的问题,那么建议更换更快的网络环境或软件源。
12.04的163的软件源貌似比较慢,我用ubuntu自动选择软件源的方式,测试出来貌似ZJU这里cn99的速度最快。
5、运行stack.sh失败后,重新运行前要先killall screen;  killall python


推荐阅读
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • Python开源库和第三方包的常用框架及库
    本文介绍了Python开源库和第三方包中常用的框架和库,包括Django、CubicWeb等。同时还整理了GitHub中最受欢迎的15个Python开源框架,涵盖了事件I/O、OLAP、Web开发、高性能网络通信、测试和爬虫等领域。 ... [详细]
  • 学习一门编程语言,除了语法,最重要的是学习解决问题。很多时候单凭自己的能力确实无法做到完美解决,所以无论是搜索引擎、社区、文档还是博客&# ... [详细]
  • 都说Python处理速度慢,为何月活7亿的 Instagram依然在使用Python?
    点击“Python编程与实战”,选择“置顶公众号”第一时间获取Python技术干货!来自|简书作者|我爱学python链接|https:www.jian ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 本文讨论了在Linux系统中,使用chown命令将django项目目录下的static目录的拥有者从root改为eureka的问题。作者尝试了多种命令,包括chown和sudo chown等,但都没有成功修改拥有者。文章提供了相关目录的权限信息,并补充了项目所在磁盘和操作系统的信息。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • Django实现CMS内容管理系统mptt评论功能
    日常开发与内容相关的Web系统时,不管是Blog还是CMS,如果需要增加与用户互动的环节那肯定需要评论的功能,接下来基于Python的MPTT框架在Django中实现评论回复功能。 ... [详细]
  • 目前我已经获得了访问DjangoRESTApi后端的基本授权,我可以使用通过shell创建的用户名passowrd我没有登录页面,因为我正在使用内置的所有内容.现在我想从我的Act ... [详细]
  • Request对象和Response对象request:(请求)当一个页面被请求时,Django就会创建一个包含本次请求原信息的HttpRequest对象。Djang ... [详细]
author-avatar
潘泓浩_236
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有