Puppet 傀儡运行命令

Puppet 傀儡运行命令,puppet,Puppet,我有一个关于如何最好地完成这项任务的问题,senario,我有许多exec命令需要按照这个顺序运行 Exec['A'] -> Exec['B']-> if var = 1(Exec['x']) if var = 2(Exec['y']) if var = 3 (Exec['z]) -> Exec['C'] -> Exec['D'] 基本上我有一个Exec,然后我有if语句,然后我需要调用一个Exec 目前,我已经做了以下工作 Exec['A'] { before Exe

我有一个关于如何最好地完成这项任务的问题,senario,我有许多exec命令需要按照这个顺序运行

Exec['A'] -> Exec['B']-> if var = 1(Exec['x']) if var = 2(Exec['y']) if var = 3 (Exec['z]) -> Exec['C'] -> Exec['D']
基本上我有一个Exec,然后我有if语句,然后我需要调用一个Exec

目前,我已经做了以下工作

Exec['A'] { before Exec['B'] } 
Exec['B'] { subscribe Exec['A'] }
if var = 1(Exec['x']) { before Exec['C'] }
if var = 2(Exec['y']) { before Exec['C'] }
if var = 3 (Exec['z]) { before Exec['C'] }
Exec['C'] { before Exec['D'] }
Exec['D']

我不确定这段代码是否是幂等的,我只是想和社区确认一下,以防他们看到我看不到的东西。我有一种感觉,if语句可以在Exec['a']之前运行,这是我不想要的

如果希望x、y和z在A之后运行,则添加
require=>Exec['A']


此外,似乎所有的执行官都将在每次运行木偶时运行。仅在时添加一个
除非
创建
仅刷新
属性。

语法已禁用,但这确实有效

Exec['A'] { before => Exec['B'] }
if $var == 1 {
  Exec['x'] { before => Exec['C'] }
}
else {
  Exec['y'] { before => Exec['C'] }
}

请注意,此代码假定所有
exec
资源A、B、C、x和y在
参数之前都已声明,没有任何相应的

要自动测试脚本的幂等性,您可能对此工具感兴趣:

Citac以各种配置、不同的资源执行顺序等方式系统地执行您的傀儡清单。生成的测试报告将通知您有关非幂等资源的问题、与收敛相关的问题等

该工具使用Docker容器执行,因此在测试时系统保持不变。在执行Puppet脚本期间跟踪状态更改,并生成详细的测试报告

请随时提供反馈,拉请求等。快乐测试

“after”甚至是一个在puppet中可用的标志吗?我最后一次检查它是在之前或要求,通知和订阅。