是否有像Django South数据库迁移应用程序这样的工具,但是用于迁移整个服务器配置?
我完全从源代码管理中管理多个服务器配置。 Django应用程序代码,Apache配置,负载均衡器配置,Ubuntu软件包列表,所有内容都列在配置文件中,并可通过Fabric命令进行部署。但是,我仍然需要手动确定更改的内容,并确定按顺序运行哪些部署命令以使服务器与我的配置文件匹配。
理想情况下,我想以南方管理我的数据库架构来管理我的服务器。在我更改了代码之后,我想生成一个“模式迁移”,它将确定是否需要重写Apache.conf,是否需要上载静态媒体,是否需要安装新的系统包等等
我看过一些传统的configuration management tools,但即使是最大的,如Chef和Puppet,似乎没有这样的功能,通常也不是幂等的。我与Chef的亲身经历表明,这有点是它的目标,但它通常无法实现这一点,而且很难定制和调试。
有没有人知道具有此功能的工具?
答案 0 :(得分:0)
我们使用EntryPoints。
我们有一个简单的工具,可以调用它可以找到的所有入口点。
我们最常用的切入点是“重启”。
在“重新启动”文档更新后,触及wsgi文件以重新启动工作进程。如果需要对文件系统进行更改(愚蠢的例子:将目录“temp”重命名为“tmp”),请执行此操作。
此工具不会跟踪已完成的历史记录。这意味着每次重新启动都会检查是否仍有目录“temp”。那是Idempotence。
到目前为止,重启仍然足够快。每个EntryPoint实现都可以使用某种快捷方式来检查它是否已经完成(例如“触摸”文件“var / entrypoints / do-foo.done”)。
我们不使用django的manage-command,因为我们使用它来设置系统。如果系统设置完毕,则django尚不可用。
但请记住:配置比编程更好:如果有多个应用程序需要符号链接,最好实现一个入口点(其他入口点再次询问)其他应用程序:您需要哪些符号链接?