雲端運算之美[從菜鳥到高手演練]系列之單節點部署CloudFoundry

來源:互聯網
上載者:User

單節點部署CloudFoundry方法

作者:egg

郵箱:xtfggef@gmail.com

微博:http://weibo.com/xtfggef

部落格:http://blog.csdn.net/zhangerqing(轉載請說明出處)

一、環境需求

官方系統內容要求:

Setup a VM with a pristine Ubuntu 10.04 Server 64-bit image

Setup your VM with 1G or more of memory

要求是server版的,但是我們實驗裝的是desktop版的,也能正常運行。

注意:千萬不要在不符合環境的機器上安裝,否則會嘗盡苦頭,各種問題,而且適合cloudfoundry無關的,很多都是一些系統庫缺失,所以,一定要選擇ubuntu10.04 64bit。雖然最終也能安裝成功,但是大大浪費時間!

二、步驟

步驟很簡單,不需要我們做太多,因為cloudfoundry內建安裝指令碼,我們只需要執行就行了,先安裝curl工具:

sudo apt-get install curl

接下來執行:

bash < <(curl -s -k -B  https://raw.github.com/cloudfoundry/vcap/master/dev_setup/bin/vcap_dev_setup)

系統會自動開始download所需的一切,中間會遇到一些地方需要輸入密碼,所以在安裝開始後,需要經常盯著,不過這個安裝過程比較耗時,下載完還有很多需要編譯的東西,所以就算是很順利,完全沒有報錯,也得三個小時,但是我安裝的幾次都是多於三個小時,因為中途總會有一些問題。

三、可能遇到的問題及解決辦法及注意事項

可能會報下面錯誤而停止:

1、Giving up. Cannot connect to the web. Check your proxy settings if you are behind a proxy.

2、Error executing action `install` on resource 'gem_package[sinatra]'

3、Error executing action `install` on resource 'gem_package[rack]'

4、Error executing action `create` on resource 'deployment_remote_file[/var/cache/dev_setup/rabbitmq-server-with-plugins-generic-unix-2.8.7.tar.gz]'

....

統一的解決方案:重新執行

bash < <(curl -s -k -B https://raw.github.com/cloudfoundry/vcap/master/dev_setup/bin/vcap_dev_setup)

原因是ruby的源rubygems.org被託管於amazons EC2(有人這樣說),所有有時會被牆,但是只要碰到問題,重新執行上面的安裝指令碼就行。不用擔心重新執行會完全重新開始,有些下載過的或者已經編譯過的東西,就不會再去重複執行了。

5、Processing deployment_remote_file[/var/cache/dev_setup/otp_src_R14B01.tar.gz] action create (erlang::default line 12)

Error executing action `create` on resource 'deployment_remote_file[/var/cache/dev_setup/otp_src_R14B01.tar.gz]'

這個是我遇到的一個手動解決的問題,是我重複執行上述指令碼後仍然不能解決的問題,根據上下文描述,這個過程是將otp_src_R14B01.tar.gz檔案部署到/var/cache/dev_setup/下,後來我在自己的機子上找到該檔案,發現足足64M,怪不得會timeout,估計是因為網路環境,我之前成功安裝過三次,都沒有遇到這個問題。所以我手動將otp_src_R14B01.tar.gz拷貝到了/var/cache/dev_setup/下,重新執行上述那個安裝指令碼,最後成功了。

6、如果最初執行安裝指令碼的時候用的是root許可權(sudo方式),那麼在以後使用的時候,啟動或者停止cloudfoundry都需要root許可權,其實安裝的時候並不需要root許可權,普通的./執行就OK了,所以我們為了方便,就別用sudo方式安裝了。

7、預設的安裝路徑在目前使用者的根路徑下,安裝完在根路徑下會出現cloudfoundry檔案夾。

最後安裝完,如果顯示:

就說明安裝成功了!

切換到使用者目錄下的:cloudfoundry/vcap/dev_setup/bin目錄下,執行:./vcap_dev start即可啟動cloudfoundry了,同樣除了start還有stop、restart等命令。執行./vcap_dev start 後,開始啟動,最終出現:就說明成功了!

共啟動了18個模組。

四、vmc的安裝

安裝完後,需要安裝vmc,直接:gem install vmc,會報錯:

就是關於vmc0.4.7依賴multi_json1.4.0的問題,預設在執行gem install vmc時,會先安裝multi_json這個包,但是安裝的是1.5.0,所以我們需要刪除1.5.0版本的,安裝1.4.0的。需要兩個檔案和一個檔案夾:

我在我的機子上找到這些檔案,分別拷貝到相應的目錄,就OK了。

multi_json-1.4.0對應放在/usr/lib/ruby/gems/1.8/gems下

multi_json-1.4.0.gemspec放在/usr/lib/ruby/gems/1.8/specifications下

multi_json-1.4.0.gem放在/usr/lib/ruby/gems/1.8/cache下

基本沒有問題了,繼續執行gem install vmc就可以了。

有時候網路不穩定還會報下面的錯:

ERROR:  http://rubygems.org/ does not appear to be a repository

ERROR:  could not find gem vmc locally or in a repository

重新執行,直到完成安裝。

安裝完vmc後,執行:vmc target api.vcap.me

上面的步驟都執行下,出現圖中的資訊,說明安裝成功了,現在就可以在上面部署應用了。

五、在其他機子上執行已經安裝好的鏡像

啟動虛擬機器後,start cloudfoundry,但是發現,只有cloud controller模組不能啟動,其他的都能起。問題原因:cloudfoundry裡面的很多設定檔都將ip寫死了。在~/cloudfoundry/.deployment/devbox/config下的很多檔案和/etc/postgresql檔案夾中,都將ip直接寫在檔案裡。

解決辦法:

1、修改上述檔案夾裡的所有需要修改的檔案,這個比較費工夫,不過用sed指令碼也快。採用下面的指令碼,請先看說明:

本指令碼已經放在了我的資源裡:http://download.csdn.net/detail/zhangerqing/5077211  沒有分的TX,微博、郵箱聯絡我啊!

2、設定虛擬機器裡的ip為初始環境的ip,需要修改虛擬機器的/etc/network/下的interfaces檔案,在裡面增加網卡對應的ip等資訊,我將interfaces檔案的內容改為:

3、修改/etc/postgresql下的所有ip,為新虛機的ip。

這樣,cloudfoundry就可以完全啟動了。但是,這樣手動更改了虛擬機器裡的ip會造成虛擬機器不能訪問網路。因此我們需要去vmware workstation裡修改資訊,使外網和內網映射好。在Edit->Virtual Network Settings裡面的NAT標籤裡設定成一致的就行了。此時,我們既可以正常啟動cloudfoundry,也可以訪問網路。

注意:

如果我們使用vmware player的話,是沒有辦法設定網路的,所以,上面的操作,需要使用workstation,我在操作的過程中還遇到一個問題,就是我開始用vmware player 9.0,所以當我將鏡像匯出後,在VMware Workstation 6.0 上無法開啟,只能進行鏡像轉換,這裡用到官方提供的一個工具:VMware vCenter Converter Standalone Client,將9.0的鏡像直接轉換成6.0的。

六、遠端存取

因為我們目前是將cloudfoundry安裝在虛擬機器裡的,虛擬機器裡是靜態ip,沒法通過SSH工具訪問,所以我們需要做連接埠重新導向,來保證大家都可以使用,具體步驟比較簡單:

Edit->Virtual Network Settings->NAT->Edit->Port Forwarding->Add一個就行了,輸入主機連接埠、虛機ip、虛機連接埠就行了。接下來就可以通過SSH工具訪問了。

(如果虛擬機器改成橋接模式,則無需重新導向,因為虛機裡也可以分配到動態IP,這樣的話,想讓cloudfoundry跑起來困難了,需要去修改很多地方的IP)


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.