做爲一個想要入門雲計算的人來講,大多數人的第一步就是學習 openstack,而學習 openstack 的人面臨的第一步就是第一個‘難題’,使用自動化部署工具 devstack 部署 openstack 環境。第一次接觸這個東西,花了兩天多時間在 Ubuntu Server 和 Ubuntu Desktop 的 16.04 版本上成功部署。有不少人說 Desktop 版有不少坑,親測問題確實比 Server 版多,但都是可解決的。其中最對初學者不友好的就是網絡問題,下面會介紹爲何。因此若是你本身買了國外的 VPS 那就好辦了,由於有個騷操做要用到,若是你網速好可能你遇不到這些問題就能夠忽略。python
下面會分兩個部分介紹,都會將 Server 和 Desktop 上的部署過程描述一遍。
教程推薦 官方的 Doc和避坑指南
教程這個東西對於初學者不宜太多,容易亂,只要有一個正確的執行框架就好。碰到其餘 bug 直接 Google 就好。git
而後介紹下個人環境吧github
首先確定是要在 Virtual Box 安裝 Ubuntu Server 了,這一步略過。相信你已是接觸過一段時間虛擬機的人了,可是一點注意,竟可能分多一點內存和硬盤。因爲我不打算往後再這 Server 版使用,因此個人配置是 4G + 20Gubuntu
當你建立完成以後面臨的一個問題就是那個界面太醜了。。。因此若是能夠在宿主機上操做就行了,SSH 正好知足你。
至於 SSH 不通使用不了的本身查查資料吧,這裏我主要介紹網卡配置,我使用了兩個網卡:
第一個:
vim
而後鏈接就是直接在主機下使用 後端
ssh -p 2222 fitzeng@127.0.0.1複製代碼
fitzeng 改爲你的用戶名。
若是你出現各類問題連不上能夠注意一下兩點:
1.防火牆
2.把 ~/.ssh
文件夾下的 known_hosts
文件刪了再重連bash
這裏的主教程以官方提供的爲準,而且那些注意點我會更新。網絡
部署的腳本要求是擁有 root 權限的非 root 用戶。多線程
sudo useradd -s /bin/bash -d /opt/stack -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
sudo su - stack
cd /opt/stack
git clone https://git.openstack.org/openstack-dev/devstack
cd devstack複製代碼
若是上面 clone 太慢或者 clone 不下來的話能夠試試 github 的源。框架
git clone https://github.com/openstack-dev/devstack.git複製代碼
而後就是添加配置了,若是不懂推薦直接使用官方頁面介紹的。或者使用如下命令
cp samples/local.conf ./
vim local.conf複製代碼
若是你幸運,講道理最後執行 ./stack.sh
直接一路到底。。。可是還有不少坑正在等待着咱們。
但可是有一個很好的是他的 Log 和報錯十分清新,很快能夠定位問題所在,有時候直接搜 Log 都會出現解決方法。
若是腳本直接退出提示沒有 HOST_IP。那麼直接在 local.conf
後面添加
HOST_IP=x.x.x.x
GIT_BASE=https://github.com複製代碼
HOST_IP具體是什麼在你的虛擬機上 ifconfig 查看。而後推薦把 git 源換成 github 的。
這裏你能夠檢測一下你的源有沒有問題 apt-get update
有的話直接把有問題的源在 /etc/apt/sources.list.d/
目錄下移除,移除前建議備份一下。而後推薦 apt-get upgrade
一下,Python 版本保持默認的 2.7.X 就好,若是出現什麼和 Python 3.4 不匹配的 Log 直接忽略。若是你換成 3.4 不少庫會出問題。若是你是 Python 3.X,能夠把 /user/bin/
下的 Python2.X 連接到該目錄下的 Python 文件。這時執行 python -V
就能看到結果了。
但但可是,上面只是解決了有形的 Bug,還有就是無形的 Bug,你將面臨網絡問題,若是你想順暢點能夠直接更換源。
修改 pip 源
mkdir ~/.pip
vim ~/.pip/pip.conf
填入:
[global]
trusted-host=mirrors.aliyun.com
index-url=http://mirrors.aliyun.com/pypi/simple複製代碼
修改 sources.list:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list
填入:
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse複製代碼
都改爲 aliyun 的。到這時候若是你的網絡沒什麼問題,可能會出點環境小問題,dkpg 和各類包等之類的問題,一搜網上基本都有解決方案。
但但可是,若是你的網速下載某些包不超 10Kb/s 那就要用騷操做了。。。由於會一直卡着,網一斷又得從新開始,先 unstack,clean 再 stack,十分不友好。出現問題大可能是在下載某個 git 倉庫和某些包的時候。尤爲是 nova
horizon
之類的,大小到了 300+M。
這裏介紹一個方法:
思路是先 SSH 上你的國外 VPS,下載你的 git 倉庫或其餘文件。而後再 SCP 到你的虛擬機上。主要是這樣不會中斷,並且無形中就能夠是多線程操做,開幾個終端 SCP 好幾個文件。
看看速度對比效果吧,
虛擬機上下載:
sudo scp -P 10800 -r root@xx.xx.xx.xx:/fitzeng/horizon /etc/stack/複製代碼
-r 是 cp 文件夾,而後端口,IP 填你本身的後面跟目錄。這裏可能也有點慢,可是比以前的好並且穩定。
有了這些操做基本就意味着你解決了網絡問題,藉助 google 基本能夠解決其餘庫和環境的問題。
成功圖上傳一波:
基本步驟是和前面一致的,出的問題可能就是你以前在 Ubuntu 上裝過各類軟件(我裝的 Sogou 輸入法,裏面的 fcitx 源影響了速度,甚至有時候直接卡這不動),更改了軟件源或者作過其它的工具更改,按照前面的配置親測可行。若是你以前在 Ubuntu Server 版上裝過,直接把文件 SCP 過來,若是虛擬機之間不能通信,能夠先 SCP 到宿主機,再從宿主機經過文件共享的方式共享到 Ubuntu Desktop。
而後運行就能夠了,有了前面的基礎就很簡單了。
那就看直接看結果吧:
說實話,這不太算技術文章,純屬我的記錄。原本不太想寫,可是感受國內環境對開發者有點不友好,若是這篇文章能對初學者有部分幫助我就滿意了,可以使初學者繼續學習下去。而後這是部署完以後寫的,部署的過程遠不如寫的這麼輕鬆,可是我如今有信心去解決部署過程當中碰到的問題,這纔是重點。但願你也是。每一個人的環境都不同,出現的問題也不可能同樣,因此若是你照上面作了尚未解決能夠留言你們一塊兒討論。
最後:多謝閱讀祝你們一遍過 ^_^