学习OpenStack之 (1):安装devstack
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代码仓库
[[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
方法:修改/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中的执行顺序:
- 支持OS类型包括Ubuntu 12.04或以上;Fedora F18或以上
- 禁止使用root运行
- 读取local.conf
- 检查stackrc文件是否存在
- 检查Devstack是不是已经在运行。如果在运行,则退出
- 配置目标安装目录,包括创建目录,设置权限
- 配置hostname,logging等
- 读取各组件的安装和启动script
- 如果没有配置密码,则需要用户输入各密码
- 配置数据库
- 配置Keystone
- 安装各pre-condition包
- 安装client包
- 安装和配置keystone,swift,glance,cinder,neutron,nova,horizon,ceilometer,heat,CA
- 配置数据库
- 配置screen
- 创建个组件使用的账号
- 初始化和启动horizon
- 启动swift,glance,
- 安装images
- 启动swift,nova_api,neutron,nova,cinder,ceilometer,heat
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