在Ubuntu12.04上部署CloudFoundry-ng (一) dea_ng和warden的部署

在Ubuntu12.04上部署CloudFoundry-ng (一) dea_ng和warden的部署


相比上個部署文檔,這次的操作更規範,更快捷
環境:Ubuntu12.04LTS ,rvm -> ruby1.9.3


1. 使用rvm安裝/管理不同版本的ruby,並且可以使用gemset將各個項目的gem環境分隔開
安裝rvm:
sudo apt-get install ruby-rvm
使用rvm安裝ruby1.9.3:
rvm install 1.9.3
rvm use 1.9.3
創建兩個gemset用來隔離dea_ng和warden的ruby依賴(因爲dea_ng和warden是兩個分離的項目):
rvm gemset create dea_ng
rvm gemset create warden




2. 安裝warden


下載warden的最新代碼
git clone https://github.com/cloudfoundry/warden.git


爲warden配置rvm:
cd warden
在目錄./和./warden下各新建一個.rvmrc文件,文件內寫入:rvm use 1.9.3@warden
這樣以後每次cd進來後,默認都會自動使用ruby1.9.3,並且使用我們剛創建的名爲“warden”的gemset


安裝warden
頂層目錄下有4個目錄 warden, warden-client, warden-protocal, em-warden-client
安裝文件在./warden目錄下:
cd warden/warden
sudo apt-get install debootstrap  (需要用到debootstrap)
rvmsudo bundle exec rake setup[config/linux.yml]   (安裝時間較長)


運行warden
rvmsudo bundle exec rake warden:start[config/linux.yml]


打開warden命令行與warden交互
bundle exec bin/warden










3. 安裝dea_ng


下載最新源碼
git clone https://github.com/cloudfoundry/dea_ng.git


爲dea_ng配置rvm:
cd dea_ng
在目錄./下新建一個.rvmrc文件,文件內寫入:rvm use 1.9.3@dea_ng
這樣以後每次cd進來後,默認都會自動使用ruby1.9.3,並且使用我們剛創建的名爲“dea_ng”的gemset


更新子git模塊並安裝dea_ng
git submodule update --init
bundle install


配置並啓動dea_ng
配置文件在config/dea.yml
需要配置nats服務的地址:nats_uri: nats://xxxxxxxx:4222/
爲了方便,可以配置日誌輸出到文件:
logging:
  level: debug
  file: ./dea_ng.log


爲了和warden交互,dea需要知道warden的sock文件路徑:
warden_socket: /tmp/warden.sock (warden默認)


嘗試啓動dea_ng:
bin/dea config/dea.yml


4. 安裝dir_server並測試dea的部署


dea_ng目錄下有一個go目錄,其中是directory_server的代碼
安裝go語言:
sudo apt-get install golang-go


測試dea_ng和dir_server的啓動環境:
bin/test confit/dea.yml
應該會報錯:
+ set -e
+ cd go
+ bin/go test -i directoryserver
src/common/logger.go:4:2: import "github.com/cloudfoundry/gosteno": cannot find package
src/common/config.go:5:2: import "launchpad.net/goyaml": cannot find package
在go/目錄下執行 bin/go get github.com/cloudfoundry/gosteno和
bin/go get launchpad.net/goyaml (可能需要sudo apt-get install bzr)
再次bin/test confit/dea.yml
可能會有一個測試報錯:
1) Dea::InstanceRegistry crash reaping under disk pressure should continue reaping while under disk pressure
     Failure/Error: em do
     RuntimeError:
       timeout
沒關係,再次bin/test confit/dea.yml,應該就會通過了


安裝dir_server:
bundle exec rake dir_server:install


最後,啓動dea_ng和dir_server:
bin/dea config/dea.yml &
bundle exec rake dir_server:run[config/dea.yml] & > dir_server.log

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章