1. 系统准备

ubuntu 12.04 server 虚拟机。 2G内存。

依次运行以下命令来安装git:

  • sudo apt-get update
  • sudo apt-get upgrade
  • sudo apt-get install git

2. 下载安装包

$git clone https://github.com/openstack-dev/devstack.git  #克隆devstack的Git代码仓库
 
3. 配置
 
从2013/10起OpenStack引入新的配置方式即使用配置文件 local.conf。从官方网站看这个文件应该存在于devstack目录中,找了后发现在samples目录中。 创建 local.conf包含下面内容:
[[local|localrc]]
ADMIN_PASSWORD=secrete #Admin密码
DATABASE_PASSWORD=$ADMIN_PASSWORD //预设密码,这样在运行stack.sh的时候就不会要求输入密码
RABBIT_PASSWORD=$ADMIN_PASSWORD //同上
SERVICE_PASSWORD=$ADMIN_PASSWORD //同上
SERVICE_TOKEN=a682f596-76f3-11e3-b3b2-e716f9080d50 其他可使用配置项:
安装路径:
默认: DEST=/opt/stack
示例:DEST=/opt/mystack
屏幕输出目录:
默认只是console输出:SCREEN_LOGDIR=”“
示例:
SCREEN_LOGDIR=$DEST/logs/screen #输出到文件,每个screen输出用时间戳命名的一个文件
日志:
默认: ``LOGFILE=”” LOGDAYS=7 LOG_COLOR=True`` //日志相关。默认日志仅在console输出

示例local.conf文件:
[[local|localrc]]
LOGDAYS=1
LOGFILE=$DEST/logs/stack.sh.log
SCREEN_LOGDIR=$DEST/logs/screen
ADMIN_PASSWORD=1111
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=a682f596-76f3-11e3-b3b2-e716f9080d50 
 
4. 以非root用户运行以下命令
cd devstack
./stack.sh
 
注意:
1. 不可以使用root用户运行该命令,可使用 /devstack/tools/create-stack-user.sh命令创建一个用户,比如stack
2. 保证该用户下sudo可以免密码运行,否则脚本执行过程中会出现权限问题

方法:修改/etc/sudoers, 在行 root    ALL=(ALL:ALL) ALL 后添加 stack      ALL=(ALL) ALL  然后保存文件

遇到的一些问题及解决办法:

1. 网速太慢,git clone失败

要么用网速快的机器;要么找一个已经装好devstack的机器,将/opt/stack所有文件拷贝到你的环境中,必要的话将git clone全部注释掉,再运行stack.sh

2. 一些依赖的包没有安装,比如下面的mysql-server-5.5:在ubuntu上装上这些包重新运行stack.sh即可

Reading package lists...
Building dependency tree...
Reading state information...
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
mysql-server : Depends: mysql-server-5.5 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

成功:

Horizon is now available at http://9.*.236.90/
Keystone is serving at http://9.*.236.90:5000/v2.0/
Examples on using novaclient command line is in exercise.sh
The default users are: admin and demo
The password: 1111
This is your host ip: 9.*.236.90

stack.sh中的执行顺序:

  1. 支持OS类型包括Ubuntu 12.04或以上;Fedora F18或以上
  2. 禁止使用root运行
  3. 读取local.conf
  4. 检查stackrc文件是否存在
  5. 检查Devstack是不是已经在运行。如果在运行,则退出
  6. 配置目标安装目录,包括创建目录,设置权限
  7. 配置hostname,logging等
  8. 读取各组件的安装和启动script
  9. 如果没有配置密码,则需要用户输入各密码
  10. 配置数据库
  11. 配置Keystone
  12. 安装各pre-condition包
  13. 安装client包
  14. 安装和配置keystone,swift,glance,cinder,neutron,nova,horizon,ceilometer,heat,CA
  15. 配置数据库
  16. 配置screen
  17. 创建个组件使用的账号
  18. 初始化和启动horizon
  19. 启动swift,glance,
  20. 安装images
  21. 启动swift,nova_api,neutron,nova,cinder,ceilometer,heat
 
5. 在浏览器中输入 http://9.*.236.90/  打开dashboard, 用admin和1111登录
 
 
6. 重启机器后重新run OpenStack: 执行rejoin_stack.sh

screen语法,执行完rejoin_stack.sh后,需要使用screen语法来控制openstack的进程
帮助 ctrl+a+?
查看screen导航 ctrl+a+"  注需要使用shift键
退出screen,有两种方法:
方法1:attach screen   ctrl+a+d
方法2:exit screen       ctrl+a+K
查看下一个screen ctrl+a+n
查看上一个screen ctrl+a+p
保存screen的日志到文件 ctrl+a+H,再按一次停止保存。

查看screen
[root@cheeliang ~]# screen -ls
There is a screen on:
        2678.stack      (Attached)
1 Socket in /var/run/screen/S-root.

重连接Re-attach screen   screen -r 2678

 
 

学习OpenStack之 (1):安装devstack的更多相关文章

  1. 学习OpenStack之 (3):Devstack Screen 使用技巧

    Devstack环境中,openstack运行在一个screen中,每个service运行在一个window中.我总结的几个tips: 0. 注意需要使用screen启动用户来进行一下操作 1. 查看 ...

  2. openstack系列文章(1)devstack安装测试Queens

    1.在OpenStack 圈子中,有这么一句名言:”不要让朋友在生产环境中运行DevStack.但是初学者在没有掌握OpenStack CLI的情况下用devstack安装测试环境还是不错的.本系列文 ...

  3. 学习OpenStack之(5):在Mac上部署Juno版本OpenStack 四节点环境

    0. 前沿 经过一段时间的折腾,终于在自己的Mac上装好了Juno版本的四节点环境.这过程中,花了大量的时间,碰到了许多问题,学到不少知识,折腾过不少其实不需要折腾的东西,本文试着来对这过程做个总结. ...

  4. openstack(liberty): devstack之stack.sh分析

    学习openstack,从devstack入手,是个不错的选择.devstack中,首先需要分析stack.sh都做了些什么! 这里面涉及到了很多shell的基础知识.我就做个简单的梳理,方便后续查阅 ...

  5. 零基础学习openstack【完整中级篇】及openstack资源汇总

    1.你是如何学习openstack的?2.你对openstack的组件了解多少?3.你认为openstack该如何学习? 一直想写关于openstack的方面的内容,今天终于整理完成.算是完成一桩心事 ...

  6. 如何学习OpenStack

    转自:http://www.chenshake.com/learn-how-openstack/ 如何学习OpenStack 由于工作的关系,也招收实习生,希望可以通过实习生的培养,让他们对Opens ...

  7. ubuntu14.04 桌面版/服务器版安装DevStack教程

    官网安装教程链接:https://docs.openstack.org/developer/devstack/ 我在ubuntu14.04 LTS 桌面版/服务器版都安装DevStack成功后,在这里 ...

  8. ubuntu 14.04安装 DevStack的脚本配置文件——localrc

    本文ubuntu 14.04安装 DevStack的脚本配置文件——localrc,本文件名已经逐渐被取代,但是出于后向兼容性,使用该文件仍然可以为stack.sh安装脚本指定安装DevStack时的 ...

  9. Ubuntu 14.04 安装 DevStack与遇到的的问题记录

    本文总结Ubuntu 14.04下部署DevStack的过程以及一些可能遇到的问题. 一.安装 以下的操作最好在普通用户下进行,至少在git clone devstack的时候使用普通用户,这样可以避 ...

  10. Centos7.3 安装devstack stein版本

    1. 系统准备 # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 关闭selinux setenforce 0 sed -i ...

随机推荐

  1. mysql出错:Access denied for user 'root'@'localhost' (using password: YES)

    网站链接mysql数据库的时候,连接不上,并报出错误:Access denied for user 'root'@'localhost' (using password:YES) 这是个相当恼火的问题 ...

  2. clicaptcha中文点击验证码开发经验总结

    现在的验证码真是越来越高级了,12306 的找图验证码,极验的拖动式验证码,还有国外的一些黑科技,能智能判断你是不是机器人的验证码. 验证码的更新迭代让我突然对传统验证码一下子不满足了,出于挑战自我和 ...

  3. js改变css样式的三种方法

    共用代码: <div id="div">this is a div</div> var div=document.getElementById('div') ...

  4. CSS3与页面布局学习笔记(二)——盒子模型(Box Model)、边距折叠、内联与块标签、CSSReset

    一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...

  5. border-radius如何兼容IE

    目前而言firefox,opera,chrome等主流浏览器都已经支持border-radius属性,唯独IE8以及之前. 解决办法就是在用的border-radius属性的后面加上:behavior ...

  6. go语言常用函数:make

    创建数组切片 Go语言提供的内置函数make()可以用于灵活地创建数组切片.创建一个初始元素个数为5的数组切片,元素初始值为0: mySlice1 := make([]int, 5) 创建一个初始元素 ...

  7. 微信不支持Object.assign

    微信不支持Object.assign,让我Vue怎么用QAQ... 解决方法: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refe ...

  8. Jquery属性获取——attr()与prop()

    今天在项目中使用<select></select>下拉菜单时,使用juery操作,使页面加载完菜单默认选中的值为2,我一开始的操作如下: <!--html部分--> ...

  9. -[UIViewController _loadViewFromNibNamed:bundle:]

    *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewC ...

  10. react native 学习资料整理

    入门教程 深入浅出 React Native:使用 JavaScript 构建原生应用 http://www.appcoda.com/react-native-introduction/  中文版 h ...