在Ubuntu上部署CloudFoundry Server
Cloud Foundry簡介: Cloud Foundry是VMware主導使用Ruby開發的一款開源PaaS(Platform-as-a-Service,平臺服務)云計算平臺,類似于Salesforce旗下的 Heroku,遵從 OpenStack云計算平臺規范。
上周嘗試通過從源碼構建的方式在Ubuntu10.04.4 LTS上安裝CloudFoundry Server,雖然最后成功了,但是過程及其艱辛,一波N折,花了很長的時間。
在這個過程中要下載、編譯、安裝很多的軟件包,有幾個G吧,非常耗時。還有些東西得FQ才能下載(eg:rubygems.org),在國內,你懂的。
從源碼安裝
從源碼安裝”比較簡單“,只需要一個命令,然后你就把電腦放那等著吧:
sudo apt-get install curl bash < <(curl -s -k -B https://raw.github.com/cloudfoundry/vcap/master/dev_setup/bin/vcap_dev_setup)
中間可能會發現這個命令卡在那里不動沒有進度了,恭喜你,我們偉大的GFW開始調戲你了。這主要是因為rubygems.org被墻了(CloudFoundry是用Ruby開發的),這時你有兩種選擇:
一個是給dev_setup設置代理,有兩種方法:
方法1 使用-p參數
~/vcap_dev_setup -p http://username:password@host :port/
方法2 設置http_proxy環境變量
export http_proxy="http://username:password@host :port/"
另一個就是替換rubygems鏡像站點,為了解決這個問題,淘寶提供了國內的rubygems鏡像站點:http://ruby.taobao.org/,感謝淘寶!具體怎么使用,到淘寶鏡像站點上看。
我用的是代理。不過用代理會在中間下載一些東西時會出現證書錯誤,git和pycurl都會出錯,還得切換回不使用代理。(注:git可以通過命令git config –global http.sslverify false來關閉ssl驗證)
通過PPA源安裝
后來google了一下,發現CloudFoundry也有PPA源,這下方便多了,雖然PPA源的下載速度之慢用過的都知道,但總比從源碼安裝要下載的文件小得多(加上一些依賴幾百M),速度慢之類的也還好解決
添加PPA源并安裝cloudfoundry-server
sudo apt-add-repository ppa:cloudfoundry/ppa sudo apt-get update sudo apt-get install cloudfoundry-server
(注:此PPA源只有11.10的軟件包,如果需要在其他版本ubuntu上安裝,請使用daily源: ppa:cloudfoundry/daily)
安裝過程中會讓你輸入一些MySQL密碼之類的信息。如果你的網速給力的話10分鐘應該就可以安裝好。
后面測試的時候還會用到客戶端:
sudo apt-get install cloudfoundry-client
測試:
1.首先設置hosts:
echo "127.0.0.1 api.vcap.me env.vcap.me" | sudo tee -a /etc/hosts
2.把vmc的target指向本地vcap服務器:
$ vmc target api.vcap.me Succesfully targeted to [http://api.vcap.me]
3.添加用戶:
$ vmc add-user Email: kirkland@example.com Password: ******** Verify Password: ******** Creating New User: OK Successfully logged into [http://api.vcap.me]4.登陸:
$ vmc login Email: kirkland@example.com Password: ******** Successfully logged into [http://api.vcap.me]5.部署應用(helloword):
創建應用程序目錄(env)
mkdir env && cd env把下面內容保存為一個ruby文件(env.rb)
require 'rubygems' require 'sinatra' get '/' do host = ENV['VCAP_APP_HOST'] port = ENV['VCAP_APP_PORT'] "<h1>XXXXX Hello from the Cloud! via: #{host}:#{port}</h1>" end get '/env' do res = '' ENV.each do |k, v| res << "#{k}: #{v}<br/>" end res end創建并上傳App
vmc push env --instances 4 --mem 64M --url env.vcap.me -n瀏覽器訪問App:
http://env.vcap.me查看App狀態:
vmc apps你會看到類似下面結果:
+-------------+----+---------+-------------+----------+ | Application | # | Health | URLS | Services | +-------------+----+---------+-------------+----------+ | env | 1 | RUNNING | env.vcap.me | | +-------------+----+---------+-------------+----------+
[教程完]
VmWare的CloudFoundry還是挺強大的,開發工具,文檔也還算全面。客戶端可以用命令行的vmc,也有eclipse插件可以用。不過畢竟現在處于Beta階段還是有不少地方需要改進的。