我正在寻找一种工具来跟踪“什么在哪里运行”。我们有一堆服务器,每个服务器都有很多项目。这些项目可能在特定版本(hg tag / commit nr)上运行,并且在特定版本中也有它们的要求。
通过自动化ssh部分,Fabric看起来像是一个很好的开始实际部署。但是,一旦完成部署,就不会对已完成的工作进行概述。
在重新发明轮子之前,我也想在这里检查一下(我用谷歌做了最好的但可能正在寻找错误的关键词)。有没有这样的工具?
(实际上我正在部署Django项目,但我不确定这与问题有关;任何跟踪pip / virtualenv安装或服务器状态的内容都应该没问题)
非常感谢,克拉斯
==========
为TEMP编辑。解
==========
目前,我们选择将这些信息简单地存储在一个简单的键值存储(在我们的例子中:文件系统)中,我们非常注意备份(在我们的例子中:使用DCVS)。我们使用与实际部署相同的部署工具跟踪此商店(在我们的例子中:fabric)
密码存储在TrueCrypt卷中,该卷存储在我们的键值存储区中。
==========
当某种开源解决方案出现在某个地方时,我仍然乐意接受任何答案。我可能会在不久的将来在某处分享(部分)我们的解决方案。
答案 0 :(得分:1)
pip freeze
为您提供所有已安装软件包的列表。额外奖励:如果将输出重定向到文件,则可以将其用作部署过程的一部分来安装所有这些软件包(pip可以通过编程方式安装文件中的所有软件包)。
我看到你已经在使用virtualenv了。好。您可以运行pip freeze -E myvirtualenv > myproject.reqs
来生成一个依赖文件,该文件兼作Python环境的状态报告。
答案 1 :(得分:0)
用他们自己的话说:
厨师允许你写作 描述你想要的食谱 服务器的一部分(例如Apache, 要配置的MySQL或Hadoop)。 这些食谱描述了一系列 应该在的资源 特定国家 - 例如, 应该安装的软件包, 应该运行的服务,或 应该写的文件。然后我们 确保每个资源都是 正确配置,只采取 纠正措施 neccessary。结果是安全的, 灵活的机制确保 您的服务器始终在运行 确切地说你想要它们。
编辑:注意Chef不是Python工具,它是一个通用工具,用Ruby编写(似乎)。但它能够支持各种“烹饪书”,包括用于安装/维护Python apps.
的“烹饪书”