warden安裝啓動以及部署python應用總結



         最近一階段時間研究了warden的應用,對於warden代碼,本人還沒有熟讀,不過在部署過程中還是遇到了許多的麻煩,今天拿來個大家分享。

         (一)首先我們warden啓動的時候首先create一個容器,然後info --handle ******一下,如果提示少了有些目錄,這個時候說明你warden雖然啓動了,但是不能運行命令,接着試試run --handle *****  --script 'ls /'命令,如果出現connection refused,就是連接拒絕的意思,這個時候說明配置有問題。

         我們來到warden/warden/lib/warden/container/features/spawn.rb


我們看到91行,把90行代碼註釋掉,寫true(至於爲什麼,以後再說)。

同樣我們在看warden/warden/lib/warden/server.rb.264行


這裏用到一個函數  Process.setrlimit(Process::RLIMIT_NOFILE, 32768),大家可以去查下setrlimit這個方法,這個是linux內核對資源限制的方法,參數RLIMIT_NOFILE(一個進程能打開的最大文件數,內核默認是1024),soft limit最大也只能達到1024,這裏是32768,所以這裏我把它改成1024.

        再啓動,發現可以run --handle --*********  --script 'ls /'這個時候warden將會出現目錄,這個時候我們就可以部署環境進去了。

(二)部署python2.7.4環境,warden中安裝的時候默認是python2.6.5的,爲了測試warden的環境以及測試warden很多命令,那就部署一個試試。

由於一般我們不會只在讓warden聯網,所以我們一般下載壓縮包,然後解壓,copy_in進去。copy_in在/home/vcap/這個目錄,因爲別的目錄你也copy不進去。這個時候我們開始安裝python2.7.4,這個安裝和網上的安裝沒有什麼區別,但是有一點要注意,那就是/.configure --prefix=/%HOME/這個目錄的設置,一般默認是設置在usr/bin/python這個目錄,但是warden是一個虛擬的linux環境,不能再容器中創建這個目錄,所以這個時候就會報錯,很蛋疼。

沒辦法,既然系統的目錄我們不能碰,(也可能可以碰,只是我暫時沒解決這個問題),把/.configure --prefix=/%HOME/中的/%HOME/這個目錄改成home/vcap/python27.然後make,make install命令。

好吧,到此算是裝好了,樓主笑了,但是在run 。。。。。script中運行'python -v',還是默認的2.6.5的,因爲我們安裝的不是系統目錄,所以我還要苦逼的在前面加上/home/vcap/python27/bin/python -V,終於看到樓主安裝的版本了,python2.7.4.

注意事項:

1.copy_in這個命令不是隨便什麼目錄都可以copy的,所以把你想copy的文件先copy到/tmp目錄下,然後在執行命令,dst_path最好目錄放在/home/vcap/目錄下。

2.下載壓縮包最好是tgz類型的(這個不一定)。

3.每次啓動主機或者虛擬機之前最好把/tmp/warden/rootfs/這個目錄下面的東西備份下,不然開啓重啓以後warden的命令是運行不了的,因爲rootfs目錄是自動清空的。如果不備份,那麼你重新啓動以後需要重新安裝下warden的環境才能運行。

       終於安裝進去了,雖然以後運行的時候要把這個苦逼的絕對路徑加進去,但是好歹是出去這一步了,這對碼農來說是一小步,對樓主來說卻是一大步。(未完待續)

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