python-Chef,ec2,knife的最佳做法,并在发生故障转移时减少启动和AMI的时间

我正在使用厨师服务器将所有服务器置于scm的厨师控制下.它很棒….我喜欢它.我想我已经开始了解禅,但我仍然需要更好的理解.

以前,我在ec2上构建了ami,并且我一直在重建ami,但至少它们启动很快.

我认为,与厨师一起,总是要从准系统实例开始,并使用刀子来构建您的ami.

启动ami大约需要20分钟,其中安装厨师大约需要5-6分钟.

我遇到的问题是我正在负载平衡下运行4台服务器,两个Redis,主从服务器和两个Nginx服务器.

在远程机器上,我有python脚本,这些脚本始终检查redis主服务器或从服务器是否关闭,以及是否负载均衡器(如果nginx服务器运行正常).

现在,在主厨的领导下,如果服务器出现故障,我必须再等待15分钟,而在预建AMI的情况下,启动新实例所需的时间就是这段时间.

我有以下问题:

1)是否有与刀子互动的python API?在python中,我使用boto启动了ami.现在,我将不得不使用popen来执行刀.我的代码取决于知道AMI何时启动并运行以继续进行进一步处理.

2)最好的做法是在主厨客户端上预先安装一个AMI?那将剃掉大约6微米.

3)最后,我还有什么想念的?任何建议都很好.

解决方法:

1)https://github.com/coderanger/pychef这是Chef api的python客户端.本身不是刀子,所以它不会为您提供可能使用的任何插件的访问权限,但应可让您与Chef服务器进行交互

2)我不这样做,因为我喜欢使用股票ubuntu ami,但是这似乎是一种完全合理的方法.可能已经有这样的ami可用,但我不知道会不会立即使用.编辑:我忘了,有厨师多功能安装程序:http://www.opscode.com/chef/install/通过deb(IIRC)安装

3)老实说,我认为您不会错过任何深刻的东西.但是,我绝对认为厨师应该成为使您的生活更轻松,更快和更稳定的工具.因此,我将以对您最有效的方式使用它.如果拥有一个预先构建的ami效果最好,那么这似乎是最好的解决方案.抱歉,我没有更多的见解.

上一篇:Java-如何在Chef中运行带有依赖项的Cookbook?


下一篇:【Codechef】Chef and Triangles -Problem Code: MAKETRI