我开始使用 chef 自动为构建农场设置构建机器。我们这里的一些依赖项是特定于机器的(例如专有编译器的许可证密钥),其他配方属性可以通过可自定义获得(例如,在哪里可以找到未公开的安装程序)。
现在,所有这些设置都硬编码在attributes.rb中,例如:
default[:mkl][:serial] = "XXXX"
并且我在配方本身中使用了 default[:mkl][:serial] 。
如果可能的话,我想要一个不需要 chef 服务器的解决方案(我正在使用 chef-solo,目前服务器的开销是不合理的)。
答案1
我设法按照如下方式进行操作:
首先,在 solo.json 文件中进行如下设置:
{ "mkl": { "license": "XXX", }, "run_list": ["recipe[mkl::default]" }
- 然后使用 -j solo.json 运行 chef-solo 命令。
我的错误是将“mkl”部分放在override_attributes里面。