4

我是傀儡部署的新手。我定义了两个类

class taskname{
      exec{ "deploy_script":
         command = "cp ${old_path} ${new path}",
         user = root,
      }

      cron{"cron_script2":
         command = "pyrhton ${new_path}",
         user = root,
         require = Exec["deploy_script"]
       }

 }

class taksname2{

      exec{ "deploy_script2":
         command = "cp ${old_path} ${new path}",
         user = root,
      }

      cron{"cron_script":
         command = "pyrhton ${new_path}",
         user = root,
         require = Exec["deploy_script2"]
       }



}

我如何确定这两个类的运行顺序。我已经尝试过一个新的清单文件

init.pp 包含这两个类

include taskname
include taskname2

似乎第二个任务在第一个任务之前运行。如何执行运行命令?

4

2 回答 2

5

使用这些元参数之一

所以总结一下:每当一个资源依赖于另一个资源时,使用 beforeor元require参数或用->. 每当一个资源在另一个资源更改时需要刷新时,请使用notifyor元subscribe参数或将资源链接到 ~>. 如果某些资源看到它们,它们会自动需要其他资源,这可以为您节省一些精力。

也适用于使用类资源语法声明的类

当使用类资源语法声明时,类可以使用任何元参数。在这种情况下,类中包含的每个资源也将具有该元参数。因此,如果您使用 声明一个类noop => true,则该类中的每个资源也将具有noop => true,除非它们专门覆盖它。可以采用多个值的元参数(如关系元参数)将合并来自容器的值和来自单个资源的任何特定值。

于 2012-12-28T17:48:36.697 回答
4

尝试使用元参数->来指定类之间的依赖关系。在声明/实例化这些类的 init.pp 中,将包含语句替换为参数化类语法:

class {"taskname":} ->
class {"taskname2":}

这将确保taskname在之前被调用taskname2。有关详细信息,请参阅http://docs.puppetlabs.com/guides/parameterized_classes.html#declaring-a-parameterized-class

于 2013-01-03T00:02:37.420 回答