chef-infra - 你如何使 Chef 资源成为可选的?

标签 chef-infra configuration-management

我在 Chef Recipe 中有一个资源,我想成为可选的。也就是说,当配方运行时,如果资源失败,我希望其他一切继续进行。当然,我仍然想知道该资源是否存在故障,只是它不是关键资源,没有任何东西依赖于它,所以我宁愿继续运行其余部分。

我习惯于使用 Puppet,您必须显式声明您的依赖项,并且仅当它们的依赖项失败时才跳过资源,而不是一次失败导致整个文件的其余部分无法运行。

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

我正在使用 chef 来设置开发环境,其中一部分只是克隆一些 git repos 以使其到位。没有什么取决于他们,偶尔会有一些开发人员无法访问的私有(private)仓库。如果克隆失败,我希望其他资源继续运行。

因此,对于以下资源:

["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

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

最佳答案

您可以设置ignore_failure true

关于chef-infra - 你如何使 Chef 资源成为可选的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13186989/

相关文章:

visual-studio - Visual Studio - 配置管理器

tomcat - 通过 Chef 将资源从 Amazon S3 转移到 Tomcat

vagrant - 在 Vagrant alone-provisioner 上使用 Chef.json 安装 apt 包

hadoop - 负责管理Hadoop配置/服务集群的 Chef

ruby-on-rails - 在 Vagrantfile 中添加 'recipe' 时出错

docker - Docker上的Consul集群自动引导

python - 使用 setuptools 创建符号链接(symbolic link)

c# - 多个应用程序,共享设置 : Use the registry or XML-based configuration?

npm - 使用 Chef 加载 NPM 包

python - 什么是不是 xml 的 c 的好的配置文件库(最好有 python 绑定(bind))?