【问题标题】:Chef attributes value reuse厨师属性值重用
【发布时间】:2016-12-22 08:07:01
【问题描述】:

版本:

  • 服务器 12
  • 主厨客户端 12.13.37

我有一个包含大量 url 引用但都指向同一服务器的属性文件。我想引用一个基本 url 来构建完整路径。然后,如果源服务器发生变化,我只需更改 top 属性。

原创

default['cookbook'][1.1]['zipurl']  = 'http://server/something/version/SERVER.zip'

计划中

default['cookbook'][1.1]['packagesurl'] = 'http://server/'

default['cookbook'][1.1]['zipurl']  = '"#{default['cookbook'][version]['packagesurl']}"something/version/SERVER.zip'

它编译和上传正常,但厨师运行返回以下内容:

"#default{['cookbook'][version]['packagesurl']}something/version/server.zip" is not a valid `source` parameter for remote_file. `source` must be an absolute URI or an array of URIs.

可能是一些基本语法错误...

我查看了一些超市公共食谱的属性,他们称使用完整路径,所以这可能是不可能的。

【问题讨论】:

    标签: chef-infra chef-attributes


    【解决方案1】:

    您需要为#{} 插值使用双引号 (") 才能在 Ruby 中工作。另请查看poise-derived,了解另一种可能会在您自己找到它们之前修复一些脚枪的选项。

    【讨论】:

    • 非常感谢 coderanger 我会看看“平衡派生”项目看起来很有趣。