Ubuntu 14.04 安裝 DevStack與遇到的的問題記錄

  本文總結Ubuntu 14.04下部署DevStack的過程以及一些可能遇到的問題。html

  1、安裝python

  如下的操做最好在普通用戶下進行,至少在git clone devstack的時候使用普通用戶,這樣能夠避免一些沒必要要的權限問題,固然,之後也可使用權限更改命令來修改普通用戶的權限,這種方法下文將會介紹。git

  1.首先獲取系統更新內容github

  $ sudo apt-get update

  2.接着升級當前發行版web

  $ sudo apt-get dist-upgrade

  3.重啓電腦令更新生效ubuntu

  4.安裝git,已有的能夠忽略本步vim

  $ sudo apt-get install git

  5.獲取devstack源碼放置到TARGET_DIR/devstack目錄中,而後將git分支從默認的master切換到穩定版的icehouse網絡

  $ cd TARGET_DIR
  $ git clone https://github.com/openstack-dev/devstack.git
  $ git checkout -b origin/stable/icehouse

  6.更該pip源,須要新建pip.conf文件指定目標源(這裏以豆瓣的pip源爲例),避免由於pip源鏈接失敗引發的安裝失敗ui

  $ mkdir ~/.pip
  $ vim ~/.pip/pip.conf
  --------pip.conf--------
  [global]
  index-url=http://pypi.douban.com/simple/

  7.採起預先配置安裝組件的方式,編輯並生成localrc文件,或將已有的localrc移入devstack/目錄url

  $ cp localrc TARGET_DIR/devstack/

  關於localrc文件的具體內容和解釋說明,請參考這篇博文

  8.運行stack.sh腳本,注意只能使用非root用戶執行。

  $ cd TARGET_DIR/devstack
  $ ./stack.s

  2、安裝過程當中遇到的問題

  1.pip源安裝失敗

  目前pip採用python的官方源,所以可能存在鏈接問題,能夠將pip源替換成國內的(如豆瓣的),具體參考上面安裝DevStack時的第6步。

  2.權限問題

  (1)因爲我平成喜歡使用root用戶進行操做,因此在git clone devstack時可能使用的是root用戶,建立的devstack目錄的屬主和屬組都是root,這樣,在執行stack.sh腳本時,須要在devstack目錄下建立一些文件,就會形成權限錯誤。這個問題比較簡單,能夠經過chmod更改devstack目錄的權限,也能夠經過chown更改devstack的屬主與屬組。

  (2)另外一個問題是devstack下載安裝openstack組件的目錄權限問題,好比我採用了localrc中默認的/opt/stack目錄來存放各個組件,所以也可能存在安裝腳本對該目錄權限不足的問題,具體的解決方案也比較簡單,只要更改該目錄的訪問權限就好了。

  $ chmod 777 /opt/stack -R

  3.組件下載失敗

   安裝腳本在第一遍安裝組件時會下載組件的源代碼,因爲網絡鏈接的問題,這時很容易出現錯誤,簡單的解決方案就是當安裝時的錯誤信息提示是組件下載失敗時,手動到Github上克隆其源代碼,放置在本身設定的組件目錄(如/opt/stack)中,而後使用git checkout命令切換到目標分支(這裏是origin/stable/icehouse),從新運行安裝腳本,就能夠經過。

  若是Github的克隆速度很是緩慢,能夠在localrc配置文件的GIT_BASE字段交替嘗試git://git.openstack.org和https://github.com兩個選項,在localrc文件的服務分支選擇選項上(如NOVA_BRANCH,CINDER_BRANCH,KEYSTONE_BRANCH)等字段設置爲stable/icehouse,多試幾遍就可以解決。

  4.Bug:'amqplib' is not in global_requirements.txt

  這是一個已公佈的Bug

  Bug #1343838

  詳細解決能夠參考OpenStack團隊的code review

  code review

  change commit

  若是遇到,須要手動添加一些依賴,同時將localrc中的RECLONE置爲false

  $ vim /opt/stack/requirements/global_requirements.txt //假設你的openstack組件目錄/stack是在默認的/opt目錄中。
  --------Add Content Below-------
  amqplib>=0.6.1
  $ vim TARGET_DIR/devstack/localrc
  --------Set RECLONE to FALSE--------
  RECLONE=FALSE

  從新執行stack.sh,這個問題就能經過。

  5.Bug: Service n-novnc is not running

  這是一個已公佈的bug,緣由是nova依賴的對象存在缺陷。

  我將這個問題報告在

  https://bugs.launchpad.net/devstack/+bug/1361108

  根據評論得知,這是一個老問題,最先出如今havana版本的nova上,具體的內容能夠參考這裏

  https://bugs.launchpad.net/ubuntu/+source/nova/+bug/1228490

由於nova依賴的websockify存在漏洞所致。後來websockify 0.5.1解決了這個問題,nova團隊也對nova的依賴關係進行了相應的調整

  https://github.com/openstack/nova/commit/3eb67b811ae2442bd86781d9f1c4078a982cfe84

  可是,使用pip安裝時默認安裝最新版本的websockify 0.6.0,這裏無語的是先前版本0.5.1 fix的bug又回來了。所以遇到這個問題時須要手動降級websockify。

  $ sudo pip uninstall websockify
  $ sudo pip install websockify==0.5.1

  我將這個問題彙報給了websockify的團隊

  https://github.com/kanaka/websockify/issues/136

  目前問題仍然open,但願獲得他們的答覆。

相關文章
相關標籤/搜索