美文网首页
Ubuntu16安装OpenStack

Ubuntu16安装OpenStack

作者: VoidKing | 来源:发表于2018-07-15 10:05 被阅读1935次

    前言

    《VirtualBox中安装OpenStack》一文中,已经成功安装过openstack。如今,确定了研究方向就是OpenStack。第一步要做的,就是在实体机安装配置OpenStack。

    由于版本更新,devstack目前只支持ubuntu16,而机房服务器使用的都是ubuntu14.04,很尴尬。尝试了旧的newton、mitaka、liberty,但是devstack依赖的keystone项目中没有了这三个分支,失败;尝试了新的pike、queens,但是ubuntu14中缺少相应的包,失败。

    找到了DevStack 安装 grizzly-eol 版本 OpenStack一文,以为在local.conf中把分支改为tag就可以了。然而,报错接连不断,解决了N个小怪,随便出来个大BOSS就我拦住了。

    最终,把系统换成了Ubuntu16,计划使用devstack安装最新版Queens,主要参考DevStack官方文档《优雅安装OpenStack》使用devstack安装OpenStack 双节点部署

    目标

    本文的目标是搭建一个 all-in-one OpenStack,所有核心服务都安装在ccrfox105节点上,节点IP为172.16.0.105。

    核心服务包括:身份认证服务keystone,镜像服务glance,计算服务nova(默认使用KVM虚拟化),网络服务neutron,仪表板horizon。也需要包含一些支持服务,例如:SQL数据库,消息队列和NTP。

    环境准备

    更换sources.list(可选)

    参考《Ubuntu更换源列表》

    1、备份源列表文件
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

    2、编辑源列表文件
    sudo vim /etc/apt/sources.list

    修改为:

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

    3、更新资源包
    sudo apt-get update

    时间同步

    1、同步时区
    执行命令sudo dpkg-reconfigure tzdata,然后选择Asia,Shanghai。

    2、安装时间同步工具

    sudo apt-get install ntpdate
    sudo ntpdate cn.pool.ntp.org
    date
    

    devstack下载

    1、安装git
    sudo apt-get install git

    2、下载devstack并切换到queens分支
    git clone https://git.openstack.org/openstack-dev/devstack -b stable/queens

    创建stack用户

    方法一:
    1、执行创建用户脚本
    sudo devstack/tools/create-stack-user.sh

    2、将devstack目录放到/opt/stack中并设置权限
    sudo mv devstack /opt/stack

    sudo chown -R stack:stack /opt/stack

    3、切换到stack用户
    sudo su - stack

    方法二:
    1、添加stack用户
    sudo useradd -s /bin/bash -d /opt/stack -m stack

    2、给stack用户添加sudo权限
    echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack

    3、将devstack目录放到/opt/stack中并设置权限
    sudo mv devstack /opt/stack

    sudo chown -R stack:stack /opt/stack

    4、切换到stack用户
    sudo su - stack

    更换pip源(可选)

    参考《python pip更换国内源》

    1、安装python
    sudo apt-get install python

    2、创建pip.conf
    mkdir ~/.pip && vim ~/.pip/pip.conf

    写入内容如下:

    [global]
    index-url = http://mirrors.aliyun.com/pypi/simple/
    
    [install]
    trusted-host = http://mirrors.aliyun.com/pypi/simple/
    

    编译安装

    1、拷贝local.conf
    cd devstack && cp samples/local.conf ./

    2、修改local.conf密码配置为:

    ADMIN_PASSWORD=secret
    DATABASE_PASSWORD=$ADMIN_PASSWORD
    RABBIT_PASSWORD=$ADMIN_PASSWORD
    SERVICE_PASSWORD=$ADMIN_PASSWORD
    

    同时在最后添加:

    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
    

    3、拷贝local.sh
    cp samples/local.sh ./

    4、执行安装
    ./stack.sh

    安装报错:E: Unable to locate package libsystemd-dev。
    (1)安装libsystemd-dev,sudo apt install libsystemd-dev,没有找到libsystemd-dev这个包。

    (2)查找libsystemd-dev,sudo apt search libsystemd-dev,果然没有找到libsystemd-dev。

    (3)猜测是sources.list的锅,改成原sources.list,问题解决。

    然后报错pip版本太低,升级却失败,删除.pip目录,问题解决。。。

    接下来,顺利安装,最后报错:

    2018-06-27 00:47:54.156 | More than one SecurityGroup exists with the name 'default'.
    2018-06-27 00:47:55.193 | More than one SecurityGroup exists with the name 'default'.
    2018-06-27 00:47:55.246 | ++./stack.sh:main:1390                   err_trap
    2018-06-27 00:47:55.254 | ++./stack.sh:err_trap:551                   local r=1
    2018-06-27 00:47:55.261 | stack.sh failed: full log in /opt/stack/logs/stack.sh.log.2018-06-27-082830
    2018-06-27 00:47:55.264 | Error on exit
    

    参考如何修改默认OpenStack安全组中的规则,查看securitygroup规则,openstack security group list

    在多租户OpenStack环境中,存在多个名为“default”的安全组。在这种情况下,请使用安全组ID而不是安全组名称。云管理员可以使用OpenStack安全组列表来显示所有安全组及其当前分配的名称。

    再次安装

    我觉得上面的安装好像失败了,打算重装。
    1、先在devstack目录中,执行卸载

    ./unstack.sh
    ./clean.sh
    

    2、再次安装
    ./stack.sh

    最后还是报同样的错误。不管了,测试下看看。

    测试使用

    1、访问 http://172.16.0.105/dashboard ,用户名输入admin,密码输入secret,登录控制台。

    2、项目,网络,创建网络和路由


    image

    3、项目,计算,创建实例


    image

    报错:

    Error: Failed to perform requested operation on instance "vm1", the instance has an error status: Please try again later [Error: Host 'ccrfox105' is not mapped to any cell].
    

    我们查看一下openstack的服务是否正常:

    openstack service list
    openstack endpoint list
    openstack compute service list
    

    提示:Missing value auth-url required for auth plugin password
    解决办法:进入devstack目录,执行

    source openrc voidking project
    source openrc admin admin
    

    虽然Missing value auth-url required for auth plugin password的问题解决了,但是还是无法创建实例。

    参考OpenStack应用、报错,执行nova-manage cell_v2 discover_hosts,问题解决。

    网络问题

    实例创建成功了,也分配了浮动IP为172.24.4.7,但是从ccrfox105上却ping不通实例。参考Openstack创建实例--horizon篇,进行如下设置:

    1、项目,网络,安全组,创建安全组。


    image

    2、管理规则,添加出口入口icmp规则和tcp规则。


    image

    3、实例的安全组选择新建的规则。


    image

    然后,再次ping 172.24.4.7,网络就通了。

    测试访问

    1、项目,计算,实例,实例名称,日志。即可看到cirros系统的用户名和密码。


    image

    2、然后在ccrfox105上,ssh登录cirros系统。


    image

    卸载devstack

    如果devstack安装失败或者不再需要,那么可以对它进行卸载。

    执行./unstack.sh./clean.sh,卸载openstack。然后删除stack用户,删除/opt/stack目录。

    或者,干脆重装系统,因为卸载后会有很多遗留问题。

    后记

    至此,完成了单节点OpenStack的安装,也进行了简单地创建实例和测试,nice。

    接下来有两个计划,一个是尝试OpenStack更多的操作和设置,以便熟悉这个平台。另一个是使用devstack安装多节点OpenStack,或者手动安装多节点Openstack。计划搭建一个Controller节点和两个Compute节点。

    在安装时,自作聪明地更换了sources.list和pip.conf,以为可以加速安装,没想到却给自己挖了坑,同学们引以为鉴啊。

    相关文章

      网友评论

          本文标题:Ubuntu16安装OpenStack

          本文链接:https://www.haomeiwen.com/subject/hltppftx.html