DevStack环境搭建

版权声明:本文为博主原创文章,仅作学习交流,如需转载请标明出处:http://blog.csdn.net/mygrus https://blog.csdn.net/mygrus/article/details/53816022

闲话

如果你和我一样,是一个OpenStack的小白,而且之前没有搭建过任何OpenStack相关的的环境,那么你可以参考一下我搭建DevStack环境的步骤,也许能给你减少很多不必要的麻烦。

起初看到官方网站上的提示,感觉没有那么复杂,就只有几步,很简单,但实际操作是另一回事情。在搭建过程中,遇到最多的问题,其实就是网络问题,基本上就是网络不通,网络下载软件包速度差,导致超时等问题。而且,即使你更换了国内的源,仍然有可能因为超时导致失败!

我当时是看了专家陈沙克的文章,并经同事指点,几经摸索才搭建成功的。

陈沙克的文章:http://www.chenshake.com/openstack-project-series-3-devstack/

搭建过程中遇到的问题,我会在另一篇文章中总结,这里略过。

准备

写这篇文章的时候,我使用的是macOS和Windows。

操作系统、工具及软件版本

注意

  • 如果你所使用的计算机(无论台式机或笔记本)内存不够,有可能最后搭建成功,也可能无法正常使用!建议至少8G。
  • 由于所使用的虚拟机镜像是服务器版本,因此,你所使用的计算机也应是64位的。而且,如果你的计算机没有开启Virtualization的话,请在BIOS中开启。实际上这一点在mac上不需要(补充:应该是我的mac型号本身就支持),但如果是Windows用户,请注意这一点。

操作系统:macOS 10.11.6/Windows10

工具:VirtualBox 5.1

镜像:ubuntu-14.04.5-server-amd64.iso

DevStack版本:Mitaka

OpenStack版本:Mitaka

获取工具

  1. 从VirtualBox的官网下载当前最新的5.1版本。

    下载地址:https://www.virtualbox.org/wiki/Downloads

    下载完毕就可以直接在计算机上安装。

  2. 下载Ubuntu操作系统,这里使用的是14.04版本,注意一定是服务器版本

    下载地址:http://releases.ubuntu.com/14.04/,选择ubuntu-14.04.5-server-amd64.iso

    下载完成后可以将该镜像放在一个指定的目录下,方便自己管理(因为之前你可能还有其它的镜像)。

创建虚拟机

  1. 启动VirtualBox。
  2. 点击“新建”,在对话框中输入虚拟机名称(我使用的是“devstack”)、类型和版本。然后点击“继续”。
  3. 内存分配5G(4G应该也可以,在网上看到有人曾经搭建过,但他认为4G比较卡,这里分5G是因为我自己配置原因,如果你硬件资源够大,最好在8G及以上,因为还要创建虚拟机)。
  4. 虚拟硬盘选择“现在创建虚拟硬盘”。
  5. 虚拟硬盘类型,如果没有特殊需求,选择默认“VDI”就可以。
  6. 存储在物理硬盘上,选择“动态分配”。
  7. 文件位置和大小,根据自己计算机情况进行处理。位置可以提前准备好,方便管理,大小建议稍大一些,我给了80G。
  8. 点击“创建”,完成。

安装虚拟机操作系统

注意:

  • 如果没有说明的,请选择默认值。

    1. 在VirtualBox中,找到刚才创建好的虚拟机,此时应该是关闭状态。

    2. 选中该虚拟机,并点击“设置”,在弹出的对话框中点击“网络”。默认情况下,有一张已存在的网卡(网卡1),连接方式是“网络地址转换(NAT)”。

    3. 这里我们需要再配置一张网卡(网卡2),选中“启动网络连接”,并设置它的连接方式是“桥接网卡”,界面名称选择你计算机实际上网用的网卡。

    4. 在VirtualBox中,启动创建好的虚拟机。

    5. 此时,会弹出一个对话框,并且需要你选择虚拟机镜像。这里选择之前下载好的Ubuntu 14.04的ISO文件,并点击“继续”。

    6. 安装镜像的时候,建议不要选择中文,建议默认值,默认是US。

    7. 然后一路默认。

    8. 到了指定主机名的步骤,可以给设置一个名称,这里使用“devstack”。

    9. 在创建新用户的步骤,需要指定一个新用户的名字,这里我使用自己名字缩写。

    10. 然后是为这个新用户输入登录密码,需要自己手动设置。

    11. 在选择时区的时候,默认是重庆,我这里选择shanghai。

    12. 在“Write the changes to the disk and configure LVM?”步骤,选择“Yes”。

    13. 在“Write the changes to disk?“步骤,选择”Yes“。

    14. 然后又是一路默认。

    15. 在“software selection”步骤,只选择“OpenSSH Sever”(选择使用空格键)。

    16. 接着又是一路默认。

    17. 虚拟机镜像安装完毕,虚拟机正常启动,我们可以使用之前创建的新用户进行登录了。

    18. 在登录界面,输入创建的用户和密码,登录虚拟机。

搭建前工具软件包的安装及配置

在虚拟机里,你可以直接尝试执行

git或者是pip命令,系统会提示你这两个程序并未安装。因此,需要我们手动进行安装。

此外,此时这台虚拟机并未设置网络,因此还不能联网,也需要我们手动配置。

一、配置网络:

  1. 查看自己计算机的IP。使用命令ifconfig(Windows上使用ipconfig)进行查看,得到我本机的IP是192.168.0.106,网关信息是192.168.0.1。

  2. 返回Ubuntu虚拟机,先切换root用户。

    执行命令sudo passwd root,首先提示输入当前用户密码。

    输入完毕回车,会提示让你输入一个新的密码给root用户,并需要重复输入进行校验,按照提示完成即可。

    执行命令su root,并输入root的密码,切换完毕。

  3. 执行ifconfig命令查看当前虚拟机网络信息,可能你会发现此时只有eth0,并没有要进行配置的eth1的信息,你可以执行ifconfig -a来进行查看,其实是存在的。

  4. 执行命令vi /etc/network/interfaces,打开配置文件。

  5. 在内容最后,添加eth1的信息,内容如下,具体的IP等参数,以你实际环境中为准。

    auto eth1

    iface eth1 inet static

    address 192.168.0.91

    netmask 255.255.255.0

    gateway 192.168.0.1

    dns-nameservers 114.114.114.114

    其中dns-nameservers我看到每一个人的都不一样,也有人说可以不配置,这里不做讨论。

  6. 执行命令:wq保存退出。

  7. 执行命令vi /etc/ssh/sshd_config打开ssh服务的配置文件。

  8. 找到其中的PermitRootLogin参数,将它的值改为“yes”,同样保存退出。

  9. 执行reboot重启虚拟机,让网络配置生效。

  10. 以root用户登录虚拟机。

  11. 执行ping命令,查看以下几种连接是否已通:

    虚拟机—>宿主机(你的物理主机,下同)

    宿主机—>虚拟机

    虚拟机—>外网

  12. 在宿主机上,使用Xshell或其它类似工具,以root用户登录虚拟机,查看ssh是否正常。

    执行命令为:ssh root@192.168.0.91

    然后按照提示输入密码登录即可。

  13. 在进行后续步骤前,请务必保证网络是好的。此部分完毕。

二、安装工具软件包

  1. 返回虚拟机,并确保是root账户登录。

  2. 执行命令cp /etc/apt/sources.list /home/sources.list.bak,来备份原有系统配置,因为外网的源速度太慢,会大概率导致我们在后续安装失败,我们要改成国内的源。

  3. 执行命令vi /etc/apt/sources.list,将里面的内容,更换为如下内容:

    deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

    这里我使用的是国内阿里云的资源,当然,你也可以替换为其它可用的资源,比如163的源。

    替换完之后保存退出。

  4. 执行命令apt-get update命令,更新系统的软件包。

  5. 更新完毕之后,同步一下时钟。

    执行命令ntpdate 182.92.12.11,完成同步。

  6. 执行命令apt-get install git,安装git。

  7. 执行命令apt-get install python-pip,安装pip。

  8. 在/root目录下,查看是否有.pip目录,若没有,创建该目录。

    执行命令mkdir .pip,进入该目录,创建对应配置文件pip.conf

  9. 在配置文件中填入以下内容(这里是我最后实际用的,如果你看到过之前那个,也是可以的):

    [global]
    timeout = 6000
    index-url = http://pypi.douban.com/simple/
    [install]
    trusted-host = pypi.douban.com

    这里使用的是pip上豆瓣的源,你也可以使用其它的源,比如清华大学的。

  10. 进入/home目录,执行以下命令,下载DevStack:

    git clone http://git.trystack.cn/openstack-dev/devstack.git -b stable/mitaka

  11. 由于当前DevStack脚本已不支持直接使用root用户,所以我们要创建stack用户。

    执行命令cd /home/devstack/tools,进入脚本目录。

    执行命令./create-stack-user.sh,创建stack用户。

  12. 执行命令passwd stack,给stack用户设置密码。具体操作步骤同root用户。

  13. 执行命令chown -R stack:stack /home/devstack,将对应目录及其下的文件更换用户组。

  14. 执行命令chmod 777 /dev/pts/0,以便后续su切换到别的用户,也可执行screen命令。

  15. 执行命令su stack,切换至stack用户。

  16. 执行cd ~,进入到stack用户名下的目录,默认是/opt/stack

  17. 像对root用户那样,添加pip的配置文件。参考当前小节步骤8~9。

  18. 配置完成之后,要注意对应的目录和文件,它们的用户组及用户是否都是stack,若不是,需要改过来。

    修改方法可参考当前小节步骤13。如果提示没有权限,可以在命令前加sudo

安装DevStack

  1. 进入/home/devstack目录。

  2. ./samples子目录中中拷贝一份local.conf文件到当前目录下(即/home/devstack)。

  3. 打开该文件,进行编辑。

    这里先强调一下,具体的配置,每个人的可能都不一样,这里仅给出自己使用过的。

    编辑内容如下:

    [[local|localrc]]

    #use TryStack git mirror

    GIT_BASE=http://git.trystack.cn
    NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
    SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git

    #OFFLINE=True

    RECLONE=True

    #Define images to be automatically downloaded during the DevStack built process.

    DOWNLOAD_DEFAULT_IMAGES=False
    IMAGE_URLS=”http://images.trystack.cn/cirros/cirros-0.3.4-x86_64-disk.img”

    HOST_IP=192.168.0.91

    #Credentials

    DATABASE_PASSWORD=mydevstack
    ADMIN_PASSWORD=mydevstack
    SERVICE_PASSWORD=mydevstack
    SERVICE_TOKEN=mydevstack
    RABBIT_PASSWORD=mydevstack

    HORIZON_BRANCH=stable/mitaka
    KEYSTONE_BRANCH=stable/mitaka
    NOVA_BRANCH=stable/mitaka
    NEUTRON_BRANCH=stable/mitaka
    GLANCE_BRANCH=stable/mitaka
    CINDER_BRANCH=stable/mitaka

    #keystone

    KEYSTONE_TOKEN_FORMAT=UUID

    #Heat

    HEAT_BRANCH=stable/mitaka
    enable_service h-eng h-api h-api-cfn h-api-cw

    #Swift

    SWIFT_BRANCH=stable/mitaka
    ENABLED_SERVICES+=,s-proxy,s-object,s-container,s-account
    SWIFT_REPLICAS=1
    SWIFT_HASH=011688b44136573e209e

    #Enabling Neutron (network) Service

    disable_service n-net
    enable_service q-svc
    enable_service q-agt
    enable_service q-dhcp
    enable_service q-l3
    enable_service q-meta
    enable_service q-metering
    enable_service neutron

    #Logging

    LOGFILE=/opt/stack/logs/stack.sh.log
    VERBOSE=True
    LOG_COLOR=True
    SCREEN_LOGDIR=/opt/stack/logs

  4. 所有这些工作都做完之后,建议重启一下虚拟机。

  5. 执行命令./stack.sh进行DevStack的安装。

  6. 等待安装完毕。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页