Openstack :1、centos7-minamal虚拟机安装devstack

来源:互联网 发布:捕鱼达人 h5源码 编辑:程序博客网 时间:2024/06/12 05:05


安装环境:centos系统下通过virt-manager安装centos7-minamal虚拟机安装devstack

参考了这篇博客:http://www.chenshake.com/openstack-project-series-3-devstack/

参考官网的devstack安装:没有安装成功

参考了wiki上的devstack安装,后安装成功

1. 下载Ubuntu14或者Centos7安装(实体机或者虚拟机都可以),建议选择最小安装镜像即可。

http://mirrors.aliyun.com/centos/7.2.1511/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso
http://mirrors.aliyun.com/ubuntu-releases/14.04.4/ubuntu-14.04.4-server-amd64.iso
这里我使用的是CentOS-7-x86_64-Minimal的镜像,注意:最好下载centos的minimal版本,否则安装容易失败; 如果安装的是Ubuntu-server,注意最小化安装ssh-server,不要使用ubuntu-desktop***.iso进行安装

如果使用虚拟机,至少分配4G内存。安装之后要设置root密码,用命令sudo passwd


2. 安装devstack文档地址http://docs.openstack.org/developer/devstack/

  • 切换到root用户:
su -cd /home
  • 获取devstack:(如果没有安装git ,先apt-get install git)
git clone https://github.com/openstack-dev/devstack.git
  • 创建stack用户:
cd /home/devstack/tools/./create-stack-user.sh
  • 准备/home/devstack/local.conf,内容可以参考下面的文件。
  • 给用户stack赋予权限:
chown -R stack:stack /home/devstack
  • 切换至stack用户:
su stack

* 设置本地pip源加速安装(创建文件夹对应root和stack用户目录):

mkdir /opt/stack/.pipmkdir /root/.pip

分别在两个文件夹中创建文件pip.conf并写入如下内容:

[global]
timeout = 6000
trusted-host=mirrors.aliyun.comindex-url = http://mirrors.aliyun.com/pypi/simple/

注:默认使用python.pypi源会非常慢,如果换成阿里云的pypi源,速度会明显提升。

  • 执行安装:
cd /home/devstack./stack.sh
需要在网络状况较好的情况下运行,等待安装结束,中途断掉可以重新运行命令。可能会有些系统包出现package not found,需要搜索后手动安装。
安装结束后浏览器 http://127.0.0.1 登录,admin/123456

3. 使用openstack命令行

登陆 http://ip,请将ip替换为你的devstack虚拟机的ip地址。
 后进入以下页面(项目—访问&安全---访问API),点击下载Openstack RC文件v2。
source刚刚下载的rc文件,输入之前设定的登陆密码123456。
接下来就可以在终端中使用opensatck命令行了(例如:openstack network list)。

4. 关于重启后后无法开启openstack服务的问题

安装好devstack之后,如果关机重启,openstack服务不会自动开启,需要使用一些方法手动开启openstack服务。
在之前版本的devstack有一个rejoin-stack.sh文件用来重启服务,但是现在被删除,详见 https://review.openstack.org/#/c/291453/ 。所以目前没有太好的办法去解决这个问题,以下提供几个临时的解决方案,仅供参考:
解决方案1(仅限虚拟机):使用虚拟机的快照功能,在关机之前拍摄快照,下一次使用直接打开快照即可。

解决方案2:进入devstack目录,重新运行./stack.sh。(耗时较多,而且会将整个平台重新初始化,不能保留之前的数据和工作)。

             强烈推荐解决方案3:进入devstack目录,执行  screen -c stack-screenrc
                                                  screen -c file:表示读取配置文件file
                                                 如果出现redis没有启动报错,可以执行如下命令 systemctl start redis


附件:local.conf文件

=======/home/devstack/local.conf===========

[[local|localrc]]SERVICE_TOKEN=123456ADMIN_PASSWORD=123456MYSQL_PASSWORD=123456RABBIT_PASSWORD=123456SERVICE_PASSWORD=$ADMIN_PASSWORD# 这里是使用的国内的openstack源(速度快),删除3个配置项则默认使用官方源(缺点是速度慢) GIT_BASE=http://git.trystack.cnNOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.gitSPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.gitenable_service s-proxy s-object s-container s-accountenable_service tempest# 如果环境中已经有了一些安装包和openstack源码,可以设置这两项为Yes和True,以保证代码更新,不出现问题。RECLONE=YesPIP_UPGRADE=True# 需要根据实际情况设置,尽量不使用127.0.0.1HOST_IP=192.168.111.100# 默认安装路径在stack用户目录,/opt/stack/中DEST=/opt/stack/LOGDIR=$DEST/logsLOG_COLOR=FalseLOGFILE=$DEST/logs/stack.sh.logLOGDAYS=2SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5# devstack安装组件分enable_service,enable_plugin两种,如:# enable_plugin sahara https://git.openstack.org/openstack/sahara # enable_service ceilometer# 最新版(Ocata)的heat 的安装代码已从devstack移除,所以需要使用enable_plugin,# enable_plugin heat https://git.openstack.org/openstack/heat# Newton 及之前版本使用enable_service安装# enable_service h-eng h-api h-api-cfn h-api-cw#enable_plugin ceilometer https://git.openstack.org/openstack/ceilometer.git#enable_plugin gnocchi https://github.com/openstack/gnocchi master


注意1:上述local.conf中最后两行分别表示ceilometer和gnocchi的插件安装,如果需要安装这两个服务,需要将前面的"#"去掉,得到如下形式

enable_plugin ceilometer https://git.openstack.org/openstack/ceilometer.gitenable_plugin gnocchi https://github.com/openstack/gnocchi master

注意2:请将上述local.conf中

HOST_IP=192.168.111.100
对应的ip地址修改为devstack的虚拟机ip地址


下面列举安装容易出现的问题及解决办法:

问题1: 安装出现错误awk '/^name.*=/ {print $3}' /opt/stack/keystone/setup.cfg awk: fatal: cannot open file `/opt/stack/k

解决办法:请将local.conf配置文件中的

RECLONE=NoPIP_UPGRADE=False
修改为

RECLONE=YesPIP_UPGRADE=True
该配置项的意思是:每次运行./stack.sh的时候,都会重新clone Devstack repo。解决了无法安装keystone等组件的问题。


问题2:安装好后,访问 ip/dashboard,其中ip是你的devstack虚拟机的ip地址,例如ip为192.168.20.50,此时访问

http://192.168.20.50/dashboard,出现无法访问,检查防火墙的提示。

解决办法:需要关闭stack用户下的防火墙

步骤1:先执行su stack,然后执行如下关闭防火墙的命令:
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
systemctl status firewalld.service
service iptables stop
/etc/init.d/iptables stop
setenforce 0  
修改配置文件/etc/selinux/config,将SELINU置为disabled。(永久关闭)
sestatus 

步骤2:开启httpd,执行如下命令

systemctl start httpd
systemctl status httpd

步骤3:导入openrc环境便量,执行如下命令

cd /home/devstack

source openrc admin admin


问题3:重启devstack虚拟机,发现之前在dashboard创建的实例等都没了

解决方法:进入devstack目录,执行 screen -c stack-screenrc
screen -c file:表示读取配置文件file,该命令作用是重启openstack各项服务
如果出现redis没有启动报错,可以执行如下命令
systemctl start redis

0 0