Puppet 使用Bolt检查目标计算机上是否存在文件

Puppet 使用Bolt检查目标计算机上是否存在文件,puppet,puppet-bolt,Puppet,Puppet Bolt,查看Bolt文档,我没有找到如何使用Puppet计划检查远程机器上是否存在文件 可以使用Using,但问题是它需要在远程机器上安装Puppet代理,这是我目前想要避免的 另一种方法是使用shell脚本,这可能是我处理这个问题的方法 还有其他想法吗?这里是博尔特的开发者,非常高兴看到你在这里提出的问题!实际上,我认为在所有其他条件相同的情况下,run\u命令在这个用例中很可能比get\u资源更有效。不确定您是否使用Windows、*nix或两者,但假设使用*nix,我想您将需要类似于: plan

查看Bolt文档,我没有找到如何使用Puppet计划检查远程机器上是否存在文件

可以使用Using,但问题是它需要在远程机器上安装Puppet代理,这是我目前想要避免的

另一种方法是使用shell脚本,这可能是我处理这个问题的方法


还有其他想法吗?

这里是博尔特的开发者,非常高兴看到你在这里提出的问题!实际上,我认为在所有其他条件相同的情况下,
run\u命令
在这个用例中很可能比
get\u资源
更有效。不确定您是否使用Windows、*nix或两者,但假设使用*nix,我想您将需要类似于:

plan myplan(
  TargetSpec $targets
) {
  # test -f will return 0 if the file exists, 1 if it does not
  $result_set = run_command("test -f /path/to/file", $targets, '_catch_errors' => true)

  # Maybe you want to write the file if it doesn't exist:
  upload_file('./myfile', '/path/to/file', $result_set.error_set.targets)
  
  # This will be the list of targets the file does exist on:
  run_task('mytask', $result_set.ok_set.targets)
}

没有比这更好或更“本机”的方法来检查远程系统上是否存在文件。
file::exist
计划功能仅适用于本地计算机,因为它在Bolt中使用的文件查找器与我们用于查找模块、Bolt配置等的文件查找器相同。但该文件查找器在远程系统上不可用。

谢谢您的回答。这正是我在目标系统上运行linux时实现它的方式。如果文件存在,我只是添加了一个备份阶段