我是Puppet的新手,虽然我多年来一直使用* nix系统,但是我从未以sysadmin或ops的身份工作。
我当前正在编写Puppet清单,用于托管一组(PHP / MySQL / MongoDB,git中的代码)Web应用程序。显然,Puppet需要对实际应用程序有所了解,因为我将为每个虚拟主机设置一个虚拟主机,但是我不确定Puppet是否应管理代码部署和数据库创建之类的事情。
Puppet是适合应用程序部署的工具吗?如果没有,您可以推荐更合适的工具吗?
我是Puppet的新手,虽然我多年来一直使用* nix系统,但是我从未以sysadmin或ops的身份工作。
我当前正在编写Puppet清单,用于托管一组(PHP / MySQL / MongoDB,git中的代码)Web应用程序。显然,Puppet需要对实际应用程序有所了解,因为我将为每个虚拟主机设置一个虚拟主机,但是我不确定Puppet是否应管理代码部署和数据库创建之类的事情。
Puppet是适合应用程序部署的工具吗?如果没有,您可以推荐更合适的工具吗?
Answers:
我会研究Capistrano或Fabric进行部署。
您将可以更好地控制使用这两个工具进行部署的方式。
Puppet用于许多大型组织中的部署,但并不总是完美的。这在很大程度上取决于您的部署方法。您要一次部署到很多机器吗?您是否进行滚动部署?
一些组织使用Puppet的方法是构建其部署的程序包,然后使puppet强制策略为该程序包的正确版本。由于puppet具有包含环境的概念,因此您可以使用环境分阶段进行部署(例如,dev,test,prod)。
其他组织使用puppet来安排部署,方法是使用puppet触发rsync,git checkout或一些递归文件副本(尽管速度很慢)。
还有其他一些非常好的工具可供部署。我过去曾经使用过威士忌盘(一种简单的红宝石工具),并且非常喜欢它。
(免责声明,我在Puppet Labs工作)
远程执行+配置管理工具非常适合应用程序部署。盐就是一个很好的例子。
Puppet并不是真正为部署而设计的,因为当涉及大量文件时,您可能会遇到问题。您可以调查capistrano以进行应用程序部署。