如何编程puppet只有在它不同的情况下提取tarball

时间:2017-07-21 21:13:37

标签: puppet

我想用木偶来做这件事:

  1. 第一个木偶运行,提取tarball的内容(存储在某个服务器上)
  2. 后续的木偶运行,只有当tarball与之前的运行不同时才提取tarball的内容
  3. 有关如何在Puppet中执行此操作的任何建议吗?我正在努力如何使用" onlyif"在Puppet中实现这个目的。

1 个答案:

答案 0 :(得分:1)

你可以在一个木偶运行中执行此操作,例如:

$filename = 'somefile'
$path = '/somepath'

file { 'filename':
 ensure => file,
 source => 'file:/<SOMEPATH>/<SOMEFILE>',
 path   => "${path}/${filename}",
 notify => Exec['extract tar'],
}

exec { 'extract tar':
 refreshonly => true,
 command     => "tar --overwrite -xf ${filename}",
 path        => '/bin',
 cwd         => $path,
}

但我认为使用puppet / archive模块会更清晰。