Devstack搭建OpenStack
文章目錄
環境介紹
VMware Workstation Pro + Ubuntu18.04(LTS) + OpenStack Queens
本文采用devstack進行自動化安裝。
環境搭建
-
下載VMware workstation
編輯-虛擬網路編輯器-更改設定
-
下載Ubuntu映象
清華大學映象站ubuntu18.04-server-amd64.iso -
下載xshell
用於ssh連線虛擬機器,目的是為了copy檔案配置程式碼
虛擬機器安裝
- 官方推薦最低配置為單處理器,控制節點為4G記憶體,計算節點為2G記憶體。
- 系統必須為64位機。
- hostname不能加下劃線。
控制節點虛擬機器分配40G磁碟空間、4G記憶體、處理器更改為雙核、開啟虛擬化、增添一個網路介面卡,設定為僅主機模式(only-host)。
計算節點虛擬機器分配30G磁碟空間、2G記憶體、處理器更改為雙核、開啟虛擬化、增添一個網路介面卡,設定為僅主機模式(only-host)。
Ubuntu環境配置
- 安裝完成後,進入系統,更改root密碼
sudo passwd root
切換至root許可權
su root
- 更改sshd_config檔案
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-srchttps://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
- 安裝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
- 設定時間
dpkg-reconfigure tzdata
選擇Asia->Shanghai
sudo apt-get install ntpdate
安裝時間同步工具
sudo ntpdate cn.pool.ntp.org
與網路伺服器同步時間
date
- 安裝git
apt-get install git
如果git clone太慢,嘗試更改hosts(毫無效果)
ipaddress
分別查詢gtihub.global.ssl.fastly.net
和github.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
- 建立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
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`重啟
# 錯誤資訊如下:
./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`,不然就要重灌系統了