微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Bolt 检查目标机器上的文件是否存在

如何解决使用 Bolt 检查目标机器上的文件是否存在

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

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

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

还有其他想法吗?

解决方法

这里是 Bolt 的开发人员,很高兴看到您在这里提出问题!我实际上认为 run_command 对于这个用例很可能比 get_resources 更有效,所有其他条件都相同。不确定您使用的是 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 配置等相同的文件查找器。但该文件查找器在远程系统上不可用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。