問題背景
最近在研究OpenStack的時候,需要對其源代碼進行調試,公司服務器上部署的OpenStack環境又不能隨意的進行折騰,為了研究的持續性和方便性,就決定再自己的虛擬機上面使用Devstack方式部署一個OpenStack環境起來,搜索各種博客結合着官網的指導,花了2天時間終於把這個事情搞定了,再次分享出這個過程。
環境准備
宿主機:windows 10
虛擬機及其軟件見下圖:
至於這兩個軟件的安裝和配置,如有不懂的可以自行google或者百度。
OpenStack安裝
1、更換apt源為阿里源
vim /etc/apt/sources.list(如果沒有權限,請使用命令: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-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed 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-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
2、保存並退出,執行下面的命令:
apt-get update
apt-get upgrade
3、設定時間同步
設定時區:dpkg-reconfigure tzdata
選擇Asia -> 再選擇Shanghai -> OK
同步時間命令:
- sudo apt-get install ntpdate // 安裝時間同步工具
- sudo ntpdate cn.pool.ntp.org // 與網絡服務器同步時間
- date // 查看時間是否已經同步
4、安裝pip(此步驟可以省略,因為ubuntu自帶的python已經安裝了pip的,但是由於系統自帶的pip版本可能較低,所以,為了保險起見還是安裝一下的好)
apt-get install python-pip(權限不夠就執行:sudo apt-get install python-pip)
5、pip更換為豆瓣源
mkdir .pip
vim .pip/pip.conf
將下面內容寫入:
[global]
index-url = http://pypi.douban.com/simple/
trusted-host = pypi.douban.com
6、下載devstack(這里安裝的是pike版本)
git clone https://github.con/openstack-dev/devstack -b stable/pike
7、創建stack用戶
devstack/tools/create-stack-user.sh
8、將devstack目錄放到/opt/stack下,並設置權限
mv devstack /opt/stack
chown -R stack:stack /opt/stack/devstack
9、切換到stack用戶,切換用戶后,所有的操作都是在stack用戶下,直到部署成功都不需要切換用戶
su - stack
10、給stack用戶配置一樣的pip豆瓣源(安裝第三方包要快些)
mkdir .pip
vim .pip/pip.conf
將下面的內容寫入:
[global]
index-url = http://pypi.douban.com/simple/
trusted-host = pypi.douban.com
事實證明:這里也會存在問題,當devstack的requirements文件依賴的遠程第三方包的版本,在豆瓣源或者阿里源中找不到匹配版本時,安裝是會出錯的。當出現這種情況的時候,可以注釋掉這個源,如下圖所示:
11、切換到devstack目錄下
cd devstack
重要部分
創建local.conf配置文件
vim local.conf
將下面的內容寫入:
1 [[local|localrc]]
2 # Define images to be automatically downloaded during the DevStack built process.
3 DOWNLOAD_DEFAULT_IMAGES=False
4 IMAGE_URLS="http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img"
5
6 # use TryStack git mirror
7 GIT_BASE=http://git.trystack.cn
8 NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
9 SPICE_REPO=http://git.trystack.cn/git/spice/sice-html5.git
10
11
12 # Credentials
13 DATABASE_PASSWORD=admin
14 ADMIN_PASSWORD=admin
15 SERVICE_PASSWORD=admin
16 SERVICE_TOKEN=admin
17 RABBIT_PASSWORD=admin
18 #FLAT_INTERFACE=enp0s3
19
20 HOST_IP=172.18.0.184
HOST_IP=虛擬機IP
12、切換到files目錄下,執行下面命令
cd files/
wget -c https://github.com/coreos/etcd/releases/download/v3.1.10/etcd-v3.1.10-linux-amd64.tar.gz
wget -c https://github.com/coreos/etcd/releases/download/v3.1.7/etcd-v3.1.7-linux-amd64.tar.gz
一次下載不成功請多次執行上面的命令,直到成功為止
13、切回devstack目錄下
cd ..
14、運行 ./stack.sh
按照上面的步驟,走到這里,一般情況下,只需要等待命令執行結束,出現下面的圖示,就說明devstack的openstack安裝成了
如果遇到其他報錯,主要是檢查local.conf,然后清理上次錯誤配置./unstack.sh和clean.sh,然后再執行./stack.sh配置,等待完成。如果遇到超時(timeout)錯誤,直接再次執行./stack.sh
至此,devstack部署openstack pike版本就圓滿結束了,如又遇到問題的小伙伴可以留言,我會第一時間回復,期待大家一起探討。