你如何使厨师资源成为可选的?

mmr*_*ins 7 configuration-management chef-infra

我有一个厨师食谱的资源,我想成为可选的.也就是说,当配方运行时,如果资源失败,我希望其他所有内容继续运行.我当然还想知道当然这个资源出现了故障,只是它不是一个关键资源而且没有任何依赖它,所以我宁愿继续运行其余部分.

我习惯使用Puppet,你必须明确地声明你的依赖项,只有当它们的依赖项失败而不是一次失败导致文件的其余部分不运行时才会跳过资源.

不知道为什么关闭这个问题并不是一个真正的问题(即使在阅读了常见问题解答之后),但我会添加一些示例代码来说明我在问什么,希望其他人可以投票重新开启或者可以回答.

我正在使用厨师设置开发环境,其中一部分就是克隆一些git repos到位.没有什么取决于他们,偶尔会有一些私人回购,一些开发者无法访问.如果它无法克隆,我希望其他资源继续运行.

因此,对于以下资源:

["foo", "bar", "baz"].each do |repo|
  git repo do
    repository  "git@github.com/example/#{repo}"
    reference   "master"
    action      :sync
    depth       1
    user        'dev'
    group       'dev'
    destination "#{node[:src_dir]}/#{repo}"
  end
end
Run Code Online (Sandbox Code Playgroud)

如果运行它的用户没有克隆foo的权限,我希望foo失败,但bar和baz仍然可以克隆.怎么可能?

小智 6

你可以设置 ignore_failure true