Python:跟踪部署的工具

时间:2011-05-13 06:41:56

标签: python deployment web-deployment

我正在寻找一种工具来跟踪“什么在哪里运行”。我们有一堆服务器,每个服务器都有很多项目。这些项目可能在特定版本(hg tag / commit nr)上运行,并且在特定版本中也有它们的要求。

通过自动化ssh部分,Fabric看起来像是一个很好的开始实际部署。但是,一旦完成部署,就不会对已完成的工作进行概述。

在重新发明轮子之前,我也想在这里检查一下(我用谷歌做了最好的但可能正在寻找错误的关键词)。有没有这样的工具?

(实际上我正在部署Django项目,但我不确定这与问题有关;任何跟踪pip / virtualenv安装或服务器状态的内容都应该没问题)

非常感谢,

克拉斯

==========

为TEMP编辑。解

==========

目前,我们选择将这些信息简单地存储在一个简单的键值存储(在我们的例子中:文件系统)中,我们非常注意备份(在我们的例子中:使用DCVS)。我们使用与实际部署相同的部署工具跟踪此商店(在我们的例子中:fabric)

密码存储在TrueCrypt卷中,该卷存储在我们的键值存储区中。

==========

当某种开源解决方案出现在某个地方时,我仍然乐意接受任何答案。我可能会在不久的将来在某处分享(部分)我们的解决方案。

2 个答案:

答案 0 :(得分:1)

pip freeze为您提供所有已安装软件包的列表。额外奖励:如果将输出重定向到文件,则可以将其用作部署过程的一部分来安装所有这些软件包(pip可以通过编程方式安装文件中的所有软件包)。

我看到你已经在使用virtualenv了。好。您可以运行pip freeze -E myvirtualenv > myproject.reqs来生成一个依赖文件,该文件兼作Python环境的状态报告。

答案 1 :(得分:0)

也许你想要像Opscode Chef.

这样的东西

用他们自己的话说:

  

厨师允许你写作   描述你想要的食谱   服务器的一部分(例如Apache,   要配置的MySQL或Hadoop)。   这些食谱描述了一系列   应该在的资源   特定国家 - 例如,   应该安装的软件包,   应该运行的服务,或   应该写的文件。然后我们   确保每个资源都是   正确配置,只采取   纠正措施   neccessary。结果是安全的,   灵活的机制确保   您的服务器始终在运行   确切地说你想要它们。

编辑:注意Chef不是Python工具,它是一个通用工具,用Ruby编写(似乎)。但它能够支持各种“烹饪书”,包括用于安装/维护Python apps.

的“烹饪书”