1
我有一个pp
清单如下:仅当其他资源应用更改时Puppet触发器资源?
我想exec
资源重新启动只有当vcsrepo
资源发现GitHub上的更新和所做的更改设备应用程序。
单独使用puppet可以吗?还是应该编写一个bash脚本来检查.git
文件夹上次更新的时间?
我有一个pp
清单如下:仅当其他资源应用更改时Puppet触发器资源?
我想exec
资源重新启动只有当vcsrepo
资源发现GitHub上的更新和所做的更改设备应用程序。
单独使用puppet可以吗?还是应该编写一个bash脚本来检查.git
文件夹上次更新的时间?
您可以使用metaparameter subscribe
和参数refreshonly
和exec
资源来完成此操作。
首先,使用subscribe
metaparmeter建立exec
对vcsrepo
排序关系,还需要检查资源的变化:https://docs.puppet.com/puppet/latest/metaparameter.html#subscribe
接下来,使用refreshonly
到exec
资源指示只适用,如果改变在vcsrepo
回购影响的变化(相一相非幂等):https://docs.puppet.com/puppet/latest/types/exec.html#exec-attribute-refreshonly
它看起来像:
vcsrepo { '/home/pi/pop_machine':
ensure => latest,
provider => git,
source => 'https://github.com/kirkins/pop-machine-demo.git',
revision => 'master',
}
exec { 'npm start':
command => "/usr/bin/killall electron & /usr/bin/npm start",
cwd => "/home/pi/pop_machine/",
subscribe => Vcsrepo['/home/pi/pop_machine'],
refreshonly => true,
}