当前位置: > 其它学习 > OpenStack >

Devstack真实环境搭建OpenStack

时间:2019-12-22 13:48来源:linux.it.net.cn 作者:IT
Devstack真实环境搭建OpenStack,IT网未对本文做过实践,仅供参考。


文章目录

    环境介绍
    环境搭建
    虚拟机环境
    Ubuntu环境配置
    砖治疑难杂症


实际环境已搭建成功

环境介绍

Ubuntu18.04(LTS) + OpenStack Queens

本文采用devstack进行自动化安装。
环境搭建

1.下载Ubuntu镜像
清华大学镜像站ubuntu18.04-server-amd64.iso
2. 下载xshell
用于ssh连接虚拟机,目的是为了copy文件配置代码
虚拟机环境

请参照别处,完成子网配置.
Ubuntu环境配置

    安装完成后,进入系统,更改root密码
    sudo passwd root
    切换至root权限
    su root
    开启SSH
    vim /etc/ssh/sshd_config
    将PermitRootLogin更改为yes,保存退出



    重启ssh服务
    service ssh restart
    查看虚拟机ip,通过xshell连接虚拟机
    ifconfig
    更换为清华镜像源
    vim /etc/apt/source.list
    将文件替换为以下内容

    # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
    deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
    # 预发布软件源,不建议启用
    # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

    更新
    sudo apt-get update
    sudo apt-get upgrade
    安装pip
    apt-get install python-pip
    更新pip
    sudo pip install --upgrade pip
    更改pip源
    mkdir ~/.pip
    vim ~/.pip/pip.conf

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

    设定时间
    timedatectl set-timezone "Asia/Shanghai"
    timedatectl set-timezone UTC
    写入硬件
    sudo hwclock -w
    创建stack用户
    sudo useradd -s /bin/bash -d /opt/stack -m stack
    echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
    切换至stack用户:
    sudo su stack
    下载devstack
    cd /opt/stack
    git clone https://github.com/openstack-dev/devstack -b stable/queens
    cd devstack
    编辑local.conf文件
    sudo vi local.conf
    控制节点:(HOST_IP改为你的控制节点ip,# Credentials 设置密码,# Branches设置要装的openstack版本)

    [[local|localrc]]
    MULTI_HOST=true
    # management & api network
    HOST_IP=10.10.10.10
    LOGFILE=/opt/stack/logs/stack.sh.log
    # Credentials
    ADMIN_PASSWORD=ztabtabz
    MYSQL_PASSWORD=ztabtabz
    RABBIT_PASSWORD=ztabtabz
    SERVICE_PASSWORD=ztabtabz
    SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz
    # enable neutron-ml2-vlan
    disable_service n-net
    enable_service q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron,q-lbaas,q-fwaas,q-vpn
    Q_AGENT=linuxbridge
    ENABLE_TENANT_VLANS=True
    TENANT_VLAN_RANGE=3001:4000
    PHYSICAL_NETWORK=default
    LOG_COLOR=True
    LOGDIR=$DEST/logs
    SCREEN_LOGDIR=$LOGDIR/screen
    # Branches
    KEYSTONE_BRANCH=stable/queens
    NOVA_BRANCH=stable/queens
    NEUTRON_BRANCH=stable/queens
    SWIFT_BRANCH=stable/queens
    GLANCE_BRANCH=stable/queens
    CINDER_BRANCH=stable/queens
    # 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

计算节点:(HOST_IP改为你的计算节点ip,SERVICE_HOST 改为你的控制节点ip,# Credentials 设置密码,# Branches设置要装的openstack版本)

    [[local|localrc]]
    MULTI_HOST=true
    # management & api network
    HOST_IP=10.10.10.11
    # Credentials
    ADMIN_PASSWORD=ztabtabz
    MYSQL_PASSWORD=ztabtabz
    RABBIT_PASSWORD=ztabtabz
    SERVICE_PASSWORD=ztabtabz
    SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz
    # Service information
    SERVICE_HOST=10.10.10.10
    MYSQL_HOST=$SERVICE_HOST
    RABBIT_HOST=$SERVICE_HOST
    GLANCE_HOSTPORT=$SERVICE_HOST:9292
    Q_HOST=$SERVICE_HOST
    KEYSTONE_AUTH_HOST=$SERVICE_HOST
    KEYSTONE_SERVICE_HOST=$SERVICE_HOST
    CEILOMETER_BACKEND=mongodb
    DATABASE_TYPE=mysql
    ENABLED_SERVICES=n-cpu,q-agt,neutron,placement-api
    Q_AGENT=linuxbridge
    ENABLE_TENANT_VLANS=True
    TENANT_VLAN_RANGE=3001:4000
    PHYSICAL_NETWORK=default
    # vnc config
    NOVA_VNC_ENABLED=True
    NOVNCPROXY_URL=“http://$SERVICE_HOST:6080/vnc_auto.html”
    #检查引号是否为英文字符
    VNCSERVER_LISTEN=$HOST_IP
    VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN
    LOG_COLOR=True
    LOGDIR=$DEST/logs
    SCREEN_LOGDIR=$LOGDIR/screen

    在stack用户运行安装脚本(不要使用root)
    /opt/stack/devstack/stack.sh
    通常会报错,要求使用如下命令:
    FORCE=yes /opt/stack/devstack/stack.sh

    过程中需要为不同服务设置密码,建议设置成相同。
    约安装一个小时左右,过程中会从镜像站、pip源、git等多处下载文件和依赖,time out多半是网速问题。git clone慢换4G。
    会由于缺少各种依赖包而报错,只列举我遇到并解决的。

    安装成功
    出现This is your ip 等内容,即代表安装成功。
    访问openstack
    主机浏览器输入控制节点ip。




    用户名为admin,密码为自己设置的密码。




砖治疑难杂症

    运行脚本stack.sh(用stack权限运行,请勿使用root权限)

# !!!!主机名称不能加下划线
`hostname` 查看主机名
`sudo vim /etc/hostname`更改主机名
可能需要`sudo vim /etc/hosts`更改主机名
`sudo reboot`重启




# pip安装依赖过程中,有时会出现依赖冲突的问题,是由于某些库的版本大于配置要求的版本,
# 而这些库的依赖可能与配置要求中的依赖版本不一致,即使手动升级,安装脚本仍然会降级.
可以根据冲突提示,将`~/requirements/`下的依赖txt文件中的版本更改.

  


# 错误信息如下:
./stac.sh:191 if you wish to run this script anyway run with FORCE=yes /home/dexstack/functions-commom:232: /opt/stack/logs/error.log:No such file or directory
#解决方案:
`$FORCE=yes ./stack.sh`




# 错误信息如下
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 错误
#解决方案
`sudo apt-get build-dep python-lxml python3-dev`
#其他方法
`sudo apt-get install python-dev libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev`
#总之就是缺依赖,具体哪个也分辨不太清(脚本运行时间太长不方便逐个试),GCC通常不会缺




# 错误信息如下
# pip从9手动升级至18.1之后,执行安装脚本`./stack.sh`后会被降级
# 每次失败出现`requirements`相关信息,均是因为pip版本过低,重新升级pip之后,再次执行安装脚本
`sudo pip install --upgrade pip` 升级pip
`pip --version` 查看pip版本
`sudo vim /opt/stack/devstack/tools/install_pip.sh`将第140行附近的install_get_pip注释掉




# 注意
# ./stack.sh脚本执行过程中会从`git.openstack.org`处clone包,有时等待时间会较长,可能是由于网速问题。
可以采用github镜像或者trystack镜像,在local.conf配置文件中加入
`GIT_BASE=http://git.trystack.cn`
或`GIT_BASE=https://github.com`




# 错误信息如下
error: 'Can't connect to MySQL server on '127.0.0.1' (111)'
# 解决方案
`sudo vim /etc/mysql/my.cnf`
# 将bind_address注释


# VMware安装Centos过程中,先创建空白磁盘,选择稍后安装操作系统,否则会自动安装VMtools,卡死。




根据网速不同,pip和git的速度可能有较大的差异,pip若从官网下载太慢,
可在stack用户目录下创建`.pip`目录,然后配置pip.conf文件

 


# 错误提示
Didn't find service registered by hostname after 120 seconds
# 解决方案,缺少placement-api服务,在配置文件中添加即可

(责任编辑:IT)
------分隔线----------------------------