【问题标题】:chef template/statements with remote_file带有 remote_file 的厨师模板/语句
【发布时间】:2017-10-13 08:42:02
【问题描述】:

我正在尝试创建一个厨师脚本,该脚本下载文件并使用 IO.read(downloaded File) 将下载文件的内容传递给模板变量,该模板变量在内部下载多个文件。下载的文件有特定的格式,如文件名、url、校验和等。我需要根据第一个remote_file的数据在模板内再次使用remote_file。

由于远程文件不存在,我得到一个编译时错误

Errno::ENOENT
-------------
No such file or directory @ rb_sysopen - ....

有什么建议可以解决我的用例吗?

【问题讨论】:

    标签: chef-infra remote-file-inclusion


    【解决方案1】:

    由于两遍模型,您需要将文件读取延迟到收敛时间。阅读https://coderanger.net/two-pass/ 了解关于两遍模型的详细信息。在这种情况下,您可能需要 variables foo: lazy { IO.read('something') } 之类的东西(假设您正在运行 Chef 13)。

    【讨论】:

    • 我检查了提供的链接,我们使用的是 Chef Client,版本 12.15.19。在那个厨师版本中我能处理什么?
    • 稍长的版本variables lazy { { foo: IO.read('something') } }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    相关资源
    最近更新 更多