我可以覆盖配方\角色中的默认属性,但我无法获得依赖于该属性的任何其他属性也进行更新.
例如,对于phantomjs cookbook,我想安装1.9.7而不是默认的1.9.2. (我知道这个改变现在已经致力于食谱回购)
我可以用以下方式覆盖版本:
node.set ['phantomjs'] ['version'] ="1.9.7"
但是在phantomjs默认属性中有一个依赖属性,它使用字符串替换来生成下载的基本URL:
default ['phantomjs'] ['basename'] ="phantomjs - #{node ['phantomjs'] ['version']} - linux - #{node ['kernel'] ['machine']}"
有没有办法设置版本属性,以便在评估这些相关属性之前执行更改?还是一种强制重新评估的方法?
这是我之前和之前遇到的一个问题,我只是覆盖了所有依赖的东西......但这不是一个很好的方法.
我正在使用最新的厨师(刚刚在流浪汉下测试11.8.2,但在其他地方使用最新厨师11.10.4测试)并使用厨师独奏和厨师服务器.
谢谢.
您需要将自己的食谱(覆盖此属性)移至运行列表的上方。字符串插值 ( foo-"#{whatever}") 在编译时执行(加载属性文件时),厨师客户端按运行列表的顺序加载它们。
或者您可以选择手动覆盖所有依赖属性,但这是通往地狱的道路。