擅长:python、mysql、java
<p>我不确定这是否完全合适,但我很感兴趣,所以我会咬人。作为一个rubyist,我对Python没什么帮助,但从我的经验来看,以下是对pattens的一些看法。在</p>
<p>我的初步建议是你应该回顾一下那些竞争者。具体地说,我会关注cfengine、chef和bcfg2。他们各自讲述了不同的故事,但如果我总结一下,我会说:</p>
<ul>
<li><a href="http://www.opscode.com/chef/" rel="nofollow">Chef</a>有一个可爱的dsl语法,但是由于一个复杂的体系结构而让人失望</li>
<li><a href="http://trac.mcs.anl.gov/projects/bcfg2" rel="nofollow">bcfg2</a>是用python编写的,但似乎有一种令人讨厌的倾向:使用XML:(</li>
<li><a href="http://cfengine.com" rel="nofollow">cfengine</a>在promise理论中有着最强大的理论基础(顺便说一句很有趣),但它是基于C的。在</li>
</ul>
<p>Wikipedia还提供了一个令人印象深刻的<a href="http://en.wikipedia.org/wiki/Comparison_of_open_source_configuration_management_software" rel="nofollow">configuration management tools</a>列表,您会发现这些列表很有用。在</p>
<p>关于设计你自己的工具,我建议你要遵循三个原则:</p>
<ol>
<li>简单,你越简单,这就越好。范围简单,配置和使用都很重要。在</li>
<li>您将需要一种单一的方法来存储数据,您需要能够跟踪所做的选择,而不是践踏其他人的更改(特别是在团队环境中)。在</li>
<li>安全性方面,大多数配置管理工具都需要root权限。所以你需要确保用户可以信任他们正在运行的代码。在</li>
</ol>