【问题标题】:How can I get Chef to error or at least report a missing variable in an .erb template?如何让 Chef 出错或至少报告 .erb 模板中缺少的变量?
【发布时间】:2018-11-29 13:44:50
【问题描述】:

如果我在 .erb 中有如下一行:

        TMP_DIR=$(mktemp -d <%= @temp_dir %>/tmp_dir.XXXXXX)

如果@temp_dir 变量未定义,有没有办法让 Chef 失败,或者至少报告?

理想情况下,我希望通过在配方顶部的一次调用或在命令行中使用配置选项(我使用的是 chef-client)来执行此操作。

先谢谢了!

【问题讨论】:

标签: chef-infra erb chef-recipe chef-template


【解决方案1】:

您可以抛出错误并退出 Chef:

Chef::Application.fatal!("Temporary directory is undefined") unless defined? temp_dir

它不会覆盖空变量,因此您可以添加 temp_dir.empty? 检查或任何适用于您的情况的内容

【讨论】:

  • 谢谢,但我真的希望触发某种严格的行为,其中不允许使用未定义的变量。我不仅想把它应用到一个变量上,还想把它应用到一个拥有超过 100 个模板和可能数千个变量的成熟项目上,我想不出一个未定义变量应该可以的用例。
猜你喜欢
  • 2015-07-20
  • 1970-01-01
  • 1970-01-01
  • 2016-03-19
  • 2013-11-17
  • 2019-01-22
  • 1970-01-01
  • 1970-01-01
  • 2017-09-18
相关资源
最近更新 更多