1. 程式人生 > >Devstack搭建OpenStack

Devstack搭建OpenStack

文章目錄

環境介紹

VMware Workstation Pro + Ubuntu18.04(LTS) + OpenStack Queens

本文采用devstack進行自動化安裝。

環境搭建

  1. 下載VMware workstation
    編輯-虛擬網路編輯器-更改設定

  2. 下載Ubuntu映象
    清華大學映象站ubuntu18.04-server-amd64.iso

  3. 下載xshell
    用於ssh連線虛擬機器,目的是為了copy檔案配置程式碼

虛擬機器安裝

  • 官方推薦最低配置為單處理器,控制節點為4G記憶體,計算節點為2G記憶體。
  • 系統必須為64位機。
  • hostname不能加下劃線。
    控制節點虛擬機器分配40G磁碟空間、4G記憶體、處理器更改為雙核、開啟虛擬化、增添一個網路介面卡,設定為僅主機模式(only-host)。
    計算節點虛擬機器分配30G磁碟空間、2G記憶體、處理器更改為雙核、開啟虛擬化、增添一個網路介面卡,設定為僅主機模式(only-host)。

Ubuntu環境配置

  1. 安裝完成後,進入系統,更改root密碼
    sudo passwd root
    切換至root許可權
    su root
  2. 更改sshd_config檔案
    vim /etc/ssh/sshd_config
    PermitRootLogin更改為yes,儲存退出

    重啟ssh服務
    service ssh restart
  3. 檢視虛擬機器ip,通過xshell連線虛擬機器
    ifconfig
  4. 更換為清華映象源
    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

  1. 更新
    sudo apt-get update
    sudo apt-get upgrade
  2. 安裝pip3
    apt-get install python3-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

  1. 設定時間
    dpkg-reconfigure tzdata
    選擇Asia->Shanghai
    sudo apt-get install ntpdate 安裝時間同步工具
    sudo ntpdate cn.pool.ntp.org與網路伺服器同步時間
    date
  2. 安裝git
    apt-get install git
    如果git clone太慢,嘗試更改hosts(毫無效果)
    ipaddress
    分別查詢gtihub.global.ssl.fastly.netgithub.com的ip地址,將其新增進hosts
    vim /etc/hosts
    重新整理dns快取
    sudo /etc/init.d/networking restart

    sudo /etc/init.d/nscd restart
    若未找到命令則先安裝nscd
    sudo apt-get install nscd
  3. 建立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
  4. 下載devstack
    cd /opt/stack
    git clone https://github.com/openstack-dev/devstack -b stable/queens
    cd devstack
  5. 編輯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
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

  1. 在stack使用者執行安裝指令碼(不要使用root)
    /opt/stack/devstack/stack.sh
    通常會報錯,要求使用如下命令:
    FORCE=yes /opt/stack/devstack/stack.sh
  • 過程中需要為不同服務設定密碼,建議設定成相同。
  • 約安裝一個小時左右,過程中會從映象站、pip源、git等多處下載檔案和依賴,time out多半是網速問題。git clone慢換4G。
  • 會由於缺少各種依賴包而報錯,只列舉我遇到並解決的。
  1. 安裝成功
    出現This is your ip 等內容,即代表安裝成功。
  2. 訪問openstack
    主機瀏覽器輸入控制節點ip。

    使用者名稱為admin,密碼為自己設定的密碼。

磚治疑難雜症

  • 執行指令碼stack.sh(用stack許可權執行,請勿使用root許可權)
# !!!!主機名稱不能加下劃線
`hostname` 檢視主機名
`sudo vim /etc/hostname`更改主機名
可能需要`sudo vim /etc/hosts`更改主機名
`sudo reboot`重啟
# 錯誤資訊如下:
./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版本
# 注意
# ./stack.sh指令碼執行過程中會從`git.openstack.org`處clone包,有時等待時間會較長,可能是由於網速問題。
# 錯誤資訊如下
error: 'Can't connect to MySQL server on '127.0.0.1' (111)'
# 解決方案
`sudo vim /etc/mysql/my.cnf`
# 將bind_address註釋
# VMware安裝Centos過程中,先建立空白磁碟,選擇稍後安裝作業系統,否則會自動安裝VMtools,卡死。
# Centos6.5的yum依賴於2.6,與python2.7不相容,每次yum update都需要更改/usr/bin/yum頭部註釋?改完也不好使系列?
# yum不會用啊(;′⌒`)
# 請勿輕易解除安裝python2.6及yum,解除安裝之前先安裝`yum install wget`,不然就要重灌系統了

參考:https://blog.csdn.net/pfztab/article/details/78632393