AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 400907
Accepted
HUB
HUB
Asked: 2012-06-22 03:40:09 +0800 CST2012-06-22 03:40:09 +0800 CST 2012-06-22 03:40:09 +0800 CST

从 Chef 食谱返回而不引发异常

  • 772

有没有办法在不引发异常的情况下从 Chef 食谱返回?

假设我有一个很长的食谱。我想在它的开头添加一个 ruby​​ 块,它将检查某些条件(例如目录存在)并停止处理此配方(但继续执行 run_list 的其余部分),如果条件成功则不引发异常。

条件执行(only_if/not_if)不能解决问题,因为我必须将条件添加到配方中的每个资源调用,而它们可能有很多。

Opscode 的 wiki 中有一条评论,其中评论者询问了相同但没有答案。

deployment configuration-management chef
  • 2 2 个回答
  • 6464 Views

2 个回答

  • Voted
  1. Best Answer
    yoniLavi
    2013-10-03T03:55:06+08:002013-10-03T03:55:06+08:00

    中止配方运行的方法(例如由于某些条件)是使用“返回”语句。彻底的讨论出现在 jtimberman 对平行 StackOverflow 问题的回答中。

    • 3
  2. Tim Potter
    2012-06-22T22:21:41+08:002012-06-22T22:21:41+08:00

    我会将该食谱分成两部分并include_recipe在 if 语句中使用。例如在cookbooks/foo/default.rb:

    some_condition = File.exists?("/etc/whatever") # Your specific check here
    
    if some_condition
        include_recipe "foo::conditional_bit"
    end
    

    将您的条件配方放入cookbooks/foo/recipes/conditional_bit.rb并添加recipe[foo]到相应节点的运行列表中。

    请注意,如果您指定了 ruby​​ 块,执行顺序将略有不同。将在 chef-client 运行的“编译”阶段检查条件,而不是“执行”阶段。有关详细信息,请参阅Chef Run 剖析页面。

    • 1

相关问题

  • 网络监控产品公司的部署工程师需要具备哪些技能?[关闭]

  • Mac OS X 的无人值守安装

  • Firefox 打包以包含用于网络安装的插件

  • 我应该将 Rails 应用程序部署到哪个目录?

  • 将 iChat 设置部署到多个用户

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve