1. 程式人生 > >搭建DevStack中遇到的問題及解決辦法

搭建DevStack中遇到的問題及解決辦法

說明

由於是第一次搭建DevStack環境,在安裝過程中遇到了很多問題,這裡儘可能全的把自己當時遇到的問題都記錄下來,給大家提供一個參考。

這裡給出的都是折騰了自己好久的問題,因為每次重新執行./stack.sh的過程都是漫長的,失敗了就要重來,導致從最開始搭建,到第一次成功,耗費了好幾天時間。

搭建時使用的是:Ubuntu 14.04 + DevStack(Mitaka)+ OpenStack(Mitaka)版本。

為了方便說明,這裡統一將Ubuntu虛擬機器稱為宿主機。

問題

超時

問題1

問題描述:

已經配置了pip的源,將它已經改成國內的地址了,為什麼在安裝過程中,進行到某些步驟,還是因超時失敗,檢視日誌發現,安裝時部分步驟並沒有到我指定的國內映象上去下載包。

解決思路:

首先檢視宿主機的/root/.pip/pip.conf檔案,其配置是否正確;接下來檢視stack使用者的目錄(通常預設是/opt/stack)下,是否有相應的./pip目錄和裡面的pip.conf檔案,如果沒有,請按照/root目錄下對應的目錄及檔案進行配置。如果有,則請檢視對應目錄和檔案的使用者組和使用者是否是“stack”,如果不是請立即更改。完成以上步驟後,請重啟一下虛擬機器,然後重新執行./stack.sh命令。

問題2

問題描述:

已經在宿主機上配置好了pip的國內源,在執行./stack.sh命令時,仍會報超時失敗。

解決思路:

說實話,這個沒有什麼特別好的解決辦法,只取決於你環境的網路條件。

當然,你也可以像我一樣,換一個pip的國內源試試。比如清華大學的映象,就我自己使用情況看,也是不錯的。但你在安裝時到底能使用哪一個,還得參考Python官方所記錄的一些映象地址。因為有時你要用時,這些源就不支援了。

問題3

問題描述:

已經將pip兩處配置,以及Ubuntu自己apt的配置都改過了,也重啟過宿主機,但有些軟體包還是下載超時,比如某些以.whl結尾的軟體包。

解決思路:

這個問題,在我自己搭建的時候真的遇到過。執行stack命令怎麼都下不下來,手動執行命令下載就可以。

所以,如果你和我一樣的話,建議還是手動下載吧。可以使用Linux自帶的wget命令。

比如,我曾在安裝時,提示說“PyECLib-1.2.0-cp27-none-linux_x86_64.whl”下載失敗,重複了好幾次,始終無法成功,手動就可以。最後就是手動下載下來,然後將其放到對應目錄下(具體目錄需要你查看回顯資訊或日誌,這個包就提示說在/usr/local/lib/python2.7/dist-packages

目錄下),再重新執行./stack.sh命令就能繼續執行下去。

問題4

問題描述:

自己的配置檔案中,需要從網上下載cirros-0.3.4-x86_64-disk.img映象,一直下不下來。

解決思路:

可參見問題3解決方法,手動下載。然後放到/home/devstack/files目錄下。

其它問題

問題1

問題描述:

執行安裝命令時,提示在目錄/usr/local/lib/python2.7/dist-packages/openstack下,session.py檔案中,語句“DEFAULT_USER_AGENT = “openstacksdk/%s” % openstack.__version__”這裡獲取不到版本號。

解決思路:

自己嘗試過很多方法,都沒有奏效,後來只好自己看看這塊程式碼,發現它是匯入了openstack,於是想到到這個目錄下的__init__.py檔案中看看。開啟該檔案,就一行:__version__ = pbr.version.VersionInfo('openstacksdk').version_string()

於是手動加了print()看看這裡能否獲取到。手動執行後是能獲取到的(0.8.1)。

於是手動改了之前session.py檔案中那個賦值語句,再次執行./stack.sh就可以正常通過了。

遺留:這個問題究竟是為什麼會出現,如果有知道的朋友,還請能夠在這裡留言,謝謝!

問題2

問題描述:

執行安裝過程,其中提示如下錯誤:

“500 Internal Server Error: The server has either erred or is incapable of performing the requested operation. (HTTP 500)”

產生的階段是在:

“openstack –os-cloud=devstack-admin image create cirros-0.3.4-x86_64-disk -public –container-format=bare –disk-format qcow2”

解決思路:

由於我不是必須要使用swift,因此我先執行./unstack.sh,然後在local.conf中,將swift的東西都注掉了,再次重新執行./stack.sh,能夠正常執行。

遺留:如果要使用swift該如何解決?有思路的朋友還請回復,多謝!