warden安装启动以及部署python应用总结

来源:互联网 发布:淘宝店长工作职责 编辑:程序博客网 时间:2024/06/08 12:46



         最近一阶段时间研究了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的环境才能运行。

       终于安装进去了,虽然以后运行的时候要把这个苦逼的绝对路径加进去,但是好歹是出去这一步了,这对码农来说是一小步,对楼主来说却是一大步。(未完待续)

原创粉丝点击