在Ubuntu上部署CloudFoundry Server

openkk 12年前發布 | 46K 次閱讀 Ubuntu 分布式/云計算/大數據

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階段還是有不少地方需要改進的。

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!