在Ubuntu14.04上快速部署OpenStack

本文介绍如何使用OpenShit在Ubuntu14.04上快速部署OpenStack。通过编辑配置文件、安装及配置OpenShit,实现一键部署,并提供实例运行步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于初学者来说,OpenStack手工部署相当麻烦, 而且需要花较多时间学习.不过我们可以使用部署脚本来安装OpenStack.

  网上有一款名叫DevStack的号称最傻瓜的OpenStack部署工具.用了一下觉得的确挺傻瓜的.组件是从github上面直接拉下来,不仅慢不说,连版本兼容都有可能出问题.安装就用了4个小时.想要更改参数更是只能重来.更可恶的是它会使用python setup脚本把一些可能过期的包直接添加到系统的python库里,引发一大堆错误.基本上用DevStack安装失败了可以重装系统再来了.

  OpenShit是一款能够在Ubuntu14.04系统上快速部署Openstack的小工具,它使用Shell脚本和Python脚本完成对Openstack各组件的安装和配置.并且可以方便的更改配置参数重新配置,重启服务清空数据库等等.利用命令可以进行完全的自动化安装和配置.以下是OpenShit的地址

OpenShit命令介绍

  ./openshit.sh <--all|service_name> start|stop|restart
  可对各个(或者全部)Openstack组件进行启动,停止,重启操作.

   ./openshit.sh <--all|service_name> install|uninstall|download
  可对Openstack各个组件进行 安装,卸载,下载包 操作

   ./openshit.sh <--all|service_name> config
   可以配置组建建立数据库, 原先的配置文件在config-backup文件夹中按照时间备份起来,使用rollback.sh脚本可以方便的回滚配置文件改动

   ./openshit.sh <--all|service_name> clean
   可以清除服务的数据库, 若服务出问题了可以直接清掉数据库然后重新config 

    接下来我们使用OpenShit在Ubuntu14.04上部署OpenStack.这里有几个小要求:

   1. Ubuntu14.04分区一定要有足够的空间.OpenStack在创建实例的时候会使用分区的空间,空间不够则无法创建实例.测试用Ubuntu14.04分了100G,足够使用了.

  2. 建议最好是新装的ubuntu分区.如果装过神马DevStack没装成功一堆垃圾留在系统库里再用OpenShit不成功那就不好意思了.

不多说现在开始
   1.安装git, 使用git下载openshit
      git  clone https://github.com/windworst/openshit.git.

   2.修改配置文件setting.conf.
      里面有很多密码:数据库密码,服务密码.默认的可以更改,不改也没什么.
      改变网络配置.配置文件内IP值都设置称自己的IP, 网卡设置成自己的网卡(默认为eth0).

   3.配置文件修改完成后开始安装
      ./openshit.sh --all install.
     这个命令会 问你是否需要配置软件源, 第一次使用openshit请选择y, 所以命令可以这样写:
      echo y | ./openshit.sh --all install

  4.一段时间后安装完成,请输入
       ./openshit.sh --all config
       会根据setting.conf的值修改各个组件的配置文件以及数据库配置.

   5.完成后
       运行source admin-env.sh; nova service-list 查看服务状态若都为up安装成功
       在浏览器内打开 http://localhost/horizon即可看到Openstack管理界面输入密码可登陆

现在OpenStack成功部署到了Ubuntu14.04服务器上.

    为了成功运行一个实例,我们需要制作并上传一个镜像, 配置网络,启动实例.
  这里制作一个ubuntu14 server 的镜像
  1. 制作镜像
      qemu-img create -f qcow2 ubuntu.img 20G
      kvm -cdrom ubuntu-14.04-server-amd64.iso -drive file=ubuntu.img,if=virtio,index=0 -boot d -net nic -net user 
      这里就是直接从光盘安装ubuntu14-server了 装好就行

   2.上传镜像
   在openshit目录中 执行 source admin-env.sh
    执行
        glance image-create --name "ubuntu" --file ubunut.img --disk-format qcow2 --container-format bare --is-public True --progress
    进度条快速滚过,上传完成

    3. 创建网络
      在openshit目录中 执行 source  admin-env.sh (前面执行过了这里就不用执行了)
      执行
          nova network-create v-net --bridge br100 --multi-host T --fixed-range-v4 10.0.1.0/29
      这里 v-net是网络名字 10.0.1.0/29 是网段和要分配的主机数量 不要设置网段跟本网段一样,否则蛋疼超乎你想象
      执行
          nova net-list
      可以看到刚才创建的网络

  4. 创建实例
      在web管理端 镜像 栏内 点 运行 即可创建实例 (会分配刚才创建网络的ip地址)
        点击控制台,可以通过vnc看到虚拟机的屏幕
        这里有个问题 虚拟机和主机能互相ping通(需要关掉防火墙),不过无法访问外网,可能是哪里没有设置.

到这里实例已经跑起来了,文章也讲完了

一、基本介绍

本实验是在vmware workstation上虚拟机ubuntu14.04(64bit,desktop)上部署openstack(Juno版本)。采用的工具是openshit。
openshit是github上的一个项目,具体见网址:
https://github.com/windworst/openshit。
注意事项:
1.环境最好是新的ubuntu系统,如果之前用devstack等其他方法在该系统中安装过openstack的话,本次实验可能不成功。
2.ubuntu的源不要改,即/etc/apt/sources.list文件用系统默认的就好。
3.安装openstack之前先更新源。要不然openstack安装过程中会出现一些关于python包无法下载的错误。
4.ubuntu虚拟机的内存最好设置的大一些,我的电脑是8G内存,于是我分给ubuntu4G内存。如果内存较小的话,openstack的安装过程以及安装成功后在web界面上查看时都会比较卡。
5.openshit对ubuntu14.04服务器版和桌面版都支持,本实验选择的是桌面版。
6.如果在执行过程中出错,可以运行下面命令清除已安装的openstack相关配置和组件,并删除openshit文件夹,重新获取openshit,安装即可。

$./openshit.sh --all clean && ./openshit.sh --all uninstall
$cd ..
$sudo rm -rf openshit


二、安装过程详细记录
1.首先更新ubuntu源

$sudo apt-get update
$sudo apt-get upgrade

2.重启,让更新生效

$sudo reboot

3.安装git

$sudo apt-get install git

4.获取openshit

$cd /home
$git clone https://github.com/windworst/openshit.git

5.编辑配置文件setting.conf

openshit下载完后在当前目录下会有一个openshit的文件夹,进入该文件夹,修改setting.conf的权限,使得用户可以对其进行读,写操作。

$cd openshit
$sudo chmod 777 setting.conf
$sudo gedit setting.conf

此时,可以用Ctrl+Alt+T再打开一个终端,输入命令ifconfig查看本主机的ip地址

$ifconfig

由上图可知,本主机的ip地址为192.168.58.141,
在setting.conf文件中,将SET_CONTROLLER_IP,SET_COMPUTE_IP均设为本主机的Ip地址。即:
SET_CONTROLLER_IP=192.168.58.141
SET_COMPUTE_IP=192.168.58.141
此外修改所有的密码,在此,我将所有的密码设置为123456.
最后,附上我修改好的setting.conf文件,供参考(不要直接复制哦)

# This is OpenShit configure file
# All of settings in this file
# Update to Openstack component configure file

# node ip
SET_CONTROLLER_IP=192.168.58.141
SET_COMPUTE_IP=192.168.58.141
SET_INTERFACE_NAME=eth0

#vnc
SET_VNC_IP=$SET_CONTROLLER_IP
SET_VNC_CONNECT_IP=$SET_CONTROLLER_IP

# mysql configure
SET_MYSQL_IP=$SET_CONTROLLER_IP
SET_MYSQL_USER=root
SET_MYSQL_PASS=123456
SET_MYSQL_PORT=3306

# rabbit password
SET_RABBITMQ_IP=$SET_CONTROLLER_IP
SET_RABBITMQ_PASS=123456

# keystone service configure
SET_KEYSTONE_IP=$SET_COMPUTE_IP
SET_KEYSTONE_AUTH_URL=http://$SET_KEYSTONE_IP:35357/v2.0
SET_KEYSTONE_AUTH_URL_PUBLIC=http://$SET_KEYSTONE_IP:5000/v2.0

SET_OS_SERVICE_TOKEN=admin
SET_KEYSTONE_ADMIN_TENANT=admin
SET_KEYSTONE_ADMIN_ROLE=admin
SET_KEYSTONE_ADMIN=admin

SET_KEYSTONE_DBPASS=123456
SET_KEYSTONE_ADMIN_PASS=123456

# glance service configure
SET_GLANCE_IP=$SET_CONTROLLER_IP
SET_GLANCE_DBPASS=123456
SET_GLANCE_PASS=123456

# nova service configure
SET_NOVA_IP=$SET_CONTROLLER_IP
SET_NOVA_DBPASS=123456
SET_NOVA_PASS=123456

# dashboard service configure
SET_DASH_DBPASS=dashboard888

# cinder service configure
SET_CINDER_IP=$SET_CONTROLLER_IP
SET_CINDER_DBPASS=123456
SET_CINDER_PASS=123456

# neutron service configure
SET_NEUTRON_IP=$SET_CONTROLLER_IP
SET_NEUTRON_DBPASS=123456
SET_NEUTRON_PASS=123456
SET_NEUTRON_METADATA_SECRET=123456

# heat service configure
#SET_HEAT_DBPASS=
#SET_HEAT_PASS=

# ceilometer service configure
#SET_CEILOMETER_DBPASS=
#SET_CEILOMETER_PASS=

# trove service configure
#SET_TROVE_DBPASS=
#SET_TROVE_PASS=

6.安装openstack

$echo y | ./openshit.sh --all install

在这个过程中会出现一个紫色的对话框让你输入数据库的密码,该密码跟上文中配置setting.conf文件时输入的密码一样,本实验用的密码是123456。
7.配置

$./openshit.sh --all config


三、安装结果

$source admin-env.sh
$nova service-list

成功的结果应该如下图:

打开浏览器,输入http://host-ip/horizon,
注意:将host-ip替换成你主机的ip,例如本实验应该输入http://192.168.58.141/horizon
浏览器界面:

用户名:admin
密码:123456(根据setting.conf的设置)
进入后界面如下:

至此,用openshit一键安装openstack的过程基本完成。
注意,此时在web界面上的项目一栏中只有计算(compute)而没有网络(network),所以网络部分(neutron)需要再单独安装。

$./openshit.sh neutron install
$./openshit.sh neutron config

现在项目中就有网络(network)了


四、openshit命令补充

基本用法:
进入到openshit文件夹下,可以通过./openshit.sh等命令来对openstack各个组件进行操作。

$./openshit.sh <SERVICE_Name> [aciton]

例如:

$./openshit.sh --all install/uninstall
#注释:安装或卸载所有组件

$./openshit.sh cinder install/uninstall
#注释:安装或卸载cinder [块存储]

$./openshit.sh dashboard install/uninstall
#注释:安装或卸载  [图形界面管理]

$./openshit.sh glance install/uninstall
#注释:安装或卸载 [镜像管理]

$./openshit.sh keystone install/uninstall
#注释:安装或卸载  [身份认证]

$./openshit.sh mysql install/uninstall
#注释:安装或卸载 [数据库]

$./openshit.sh neutron install/uninstall
#注释:安装或卸载 [网络服务]

$./openshit.sh nova install/uninstall
#注释:安装或卸载 [计算]

$./openshit.sh nova-network linstall/uninstall
#注释:安装或卸载 [nova-network]

$./openshit.sh rabbitmq install/uninstall
#注释:安装或卸载 [消息队列]

配置命令

$./openshit.sh --all config

清除

$./openshit.sh --all clean


五、参考文献

1.https://github.com/windworst/openshit
2.http://www.aboutyun.com/thread-11706-1-1.html


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值