今天我升级了我的厨师独奏安装的 opscode jenkins 食谱。除了 0.8 版的一些更改对我来说效果很好(例如删除 jenkins_data 属性),我注意到某些属性的定义也已更改:从
default['jenkins']['server']['url'] = "http://#{node['jenkins']['server']['host']}:#{node['jenkins']['server']['port']}"
至
default['jenkins']['server']['url'] = "http://#{default['jenkins']['server']['host']}:#{default['jenkins']['server']['port']}"
所以在新版本中 jenkins.server.url 被定义为DEFAULT jenkins.server.host : 和DEFAULT jenkins.server.port的串联。问题是,当我的角色定义默认/覆盖属性 jenkins.server.port 时,新值会正确反映在属性中,但jenkins.server.url仍然引用原始端口。似乎食谱属性首先被评估,然后可以被角色属性覆盖。根据文章,它将在厨师 10 中像这样工作,但应在厨师 11 中修复。我很确定我正在使用厨师 11 - 当我的 vagrant-chef 运行时,我可以看到:
INFO: *** Chef 11.4.2 ***
对此有什么帮助吗?