有没有像Django South数据库迁移应用程序这样的工具,但用于迁移整个服务器配置?
我完全通过源代码管理来管理几个服务器配置。Django应用程序代码、Apache配置、负载均衡器配置、Ubuntu包列表,所有内容都列在一个配置文件中,可以通过Fabric命令进行部署。但是,我仍然需要手动确定更改了哪些内容,并决定按顺序运行哪些部署命令,以使服务器与我的配置文件相匹配。
理想情况下,我希望用South管理数据库模式的方式来管理我的服务器。在我更改了代码之后,我想要生成一个“模式迁移”,它将确定是否需要重写Apache.conf、是否需要上传静态媒体、是否需要安装新的系统包等等。
我看过一些传统的configuration management tools,但即使是最大的,比如厨师和木偶,似乎也没有这样的功能,而且通常也不是幂等的。我个人使用Chef的经验表明,这在某种程度上是它的目标,但它通常无法实现这一点,而且众所周知,它很难定制和调试。
有没有人知道有这种功能的工具?
发布于 2014-01-20 16:23:46
我们使用EntryPoints。
我们有一个简单的工具,它调用它能找到的所有入口点。
对于我们来说,最常用的入口点是“重新启动”。
在“重新启动”时,文档会得到更新,wsgi-file会被触摸以重新启动工作进程。如果需要更改文件系统(愚蠢的示例:将目录"temp“重命名为"tmp"),请执行此操作。
此工具不跟踪已经完成的操作的历史记录。这意味着每次重新启动都会检查是否仍然存在目录"temp“。那是Idempotence。
到目前为止,重启仍然足够快。每个EntryPoint实现都可以使用某种快捷方式来检查它是否已经完成(例如,“触摸”一个文件“var/entrypoints/do-foo.one”)。
我们不使用django的manage-命令来实现这一点,因为我们使用它来设置系统。如果设置了系统,django还不可用。
但请记住:配置比编程更好:如果几个应用程序需要符号链接,最好实现一个入口点,该入口点询问(再次按入口点)其他应用程序:您需要什么符号链接?
https://stackoverflow.com/questions/21031917
复制相似问题