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. [AngularJS] 使用AngularAMD动态加载Controller

    [AngularJS] 使用AngularAMD动态加载Controller 前言 使用AngularJS来开发Single Page Application(SPA)的时候,可以选用AngularU ...

  2. [deviceone开发]-毛玻璃效果示例

    一.简介 do_Bitmap组件可以把图片加载为内存里的Bitmap对象,能够对这个对象做各种图形化处理.目前只有3种处理,圆角,毛玻璃,灰度.以后会添加更多. 二.效果图 三.相关下载 https: ...

  3. JavaScript学习笔记-面向对象的模块化编程

    面向对象的模块化编程 模块是一个独立的JS文件,模块文件可以包含一个类定义.一组相关的类.一个实用函数库.一些待执行的代码 模块化的目标:支持大规模的程序开发,处理分散源代码的组装,并能让代码正确执行 ...

  4. MS14-064 漏洞测试入侵win7

    Microsoft Windows OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术, 远程攻击者利用此漏洞通过构造的网站执行任意代码,影响Win95+IE3 – ...

  5. 动态改变actionbar上menu的图标

    工作中遇到了一个需求是,在滚动的时候让actionbar上的图标进行变色.实现后在这里总结下思路. 一.先在主题中定义好Actionbar的style <style name="App ...

  6. Service和Thread的关系及如何启用Service,如何停用Service

    Service和Thread的关系: 不少Android初学者都可能会有这样的疑惑,Service和Thread到底有什么关系呢?什么时候应该用Service,什么时候又应该用Thread?答案可能会 ...

  7. 深入.net(多态二)

    代码优化技术: 通过“继承”技术,实现代码的复用,减少代码的编写量. 因为子类继承父类,拥有了父类所有对外公开“属性”和“方法”,所以,在系统中,完全可以由子类替代父类(里氏替换原则)!在替代的过程中 ...

  8. NSArray与NSMutableArray 数组与可变数组

    1.NSArray 是一个父类,NSMUtableArray是其子类,他们构成了OC的数组.2.NSArray的创建NSArray * array = [[NSArray alloc]initWith ...

  9. win环境变量立即生效

    执行 set PATH=C: 新打开的cmd窗口就立即生效了.

  10. js 模仿块级作用域(私有作用域)、私有变量

    function outputNumbers(count){ var privateVariable = 10;//私有/局部变量,函数外部不能被访问 publicVariable = 20;//全局 ...