Puppet中的一次性调用任务

时间:2014-07-10 06:13:36

标签: tomcat puppet continuous-delivery

我为Puppet编写了两个不同的模块,它们确保安装并运行Tomcat7,另一个模块将Web应用程序部署到Tomcat webapps文件夹中。

但是,如果我使用这两个模块运行puppet作为守护进程,每次与puppetmaster同步时都会部署应用程序,所以我想我应该执行以下操作:

  1. 将tomcat模块添加到要由此节点执行的清单列表中。通过这种方式,我将确保Tomcat每30分钟启动并运行一次。
  2. 然后:

    一个。通过以下命令在puppet agent上调用no-daemonize一次性任务,使用标签指定我只想运行部署应用程序模块。

    puppet agent --server MYSERVER --no-daemonize --onetime --tags deploy_app

    B中。以某种方式修改我的部署应用程序模块,可能指定工件中的应用程序版本,从puppetmaster自动部署而不是调用puppet agent。

    什么是正确的方法?公司通常用Puppet来完成这类任务的目的是什么?

    我想如果你从puppetmaster部署,很难知道什么时候完全部署了你的应用程序,所以你在部署过程中失去控制,我猜这不好。

1 个答案:

答案 0 :(得分:0)

这实际上取决于您如何编写用于部署工件的清单,但理想情况下,您应该在执行过程中检查是否需要首先更新。您可以通过将工件提取到临时位置并在其上运行二进制差异来完成此操作。