cloudfundry 中warden搭建python2.7環境

最近一段時間對warden深入的瞭解和研究,發現了不少問題,由於cloudfundry推出比較早,始於(2011年4月12日),warden作爲核心的資源隔離容器,更是在第二版本中才推出。

很長一段時間覺得warden是一個虛擬的linux環境。這樣理解本沒有什麼錯誤,但是仔細想想,warden容器可以創建很多的Container,其實每一個Container才真正是一個虛擬的linux環境,其實warden有點類似於vmware workstation,一個虛擬化管理工具。如果在warden部署環境,每次都在container中創建的話,有很多問題:

1.權限問題:不能支持系統權限以及sudo都不可以運行,這個是他的侷限性。

2.環境部署問題:部署的軟件都不可以在warden的系統路勁,(訪問不了),每次執行我們需要他的絕對路勁,這個很蛋疼。

3.生命週期問題:一旦container銷燬了,就完蛋了,啥也沒有了,新的container還要重新裝。

綜合上面問題,在container中部署環境無疑使不明智的,而且極其浪費資源,從而我們需要另闢蹊徑,我們注意到在/tmp/warden/rootfs/這個目錄,其實這個相當於warden的系統目錄,這個管理着所有container的運行環境以及配置等等文件。

用chroot “/tmp/warden/rootfs” env -i PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"  /bin/bash命令,這個命令改變了root跟目錄,這樣我們在運行的時候我們命令窗口默認的跟目錄和warden的跟目錄一樣了,這個時候我們在這個跟目錄裝軟件就可以了。

運行apt-get install ruby,安裝好ruby,然後我們進入warden中,運行

run --handle **********  --script 'ruby -v'

結果顯示ruby 1.8.7 (2010-01-10 patchlevel 249)[x86_64-linux]

說明安裝成功啦。。。

我們我們在安裝一個python2.7.只需要在chroot這個命令窗口安裝就可以了,但是這個時候運行

run --handle **********  --script 'python -v'

結果顯示還是2.6.5

因爲這個是warden默認安裝的python,我們運行

run --handle **********  --script '/usr/local/bin/python -V'

顯示python2.7.5

說明安裝時成功了,但是被系統默認的覆蓋掉了

這個時候我們把系統默認的鏈接給刪了,

cd /usr/bin/  --到默認的額系統目錄

rm -f python --刪除鏈接

ln -s /usr/local/bin/python /usr/bin/python  --新的目錄指向新的鏈接。

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