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) |