我正在尝试将一些自定义代码添加到 opsworks 部署说明书中,与 before_migrate 步骤相关:
before_migrate do
link_tempfiles_to_current_release
deploy_version = Time.now.strftime("%Y%m%d%H%M%S")
if node['deploy_app'] == 'web'
link "/var/lib/tomcat#{node["tomcat"]["base_version"]}/webapps/ROOT###{deploy_version}" do
to "#{release_path}"
end
我遇到的问题是,当我在我的 site-cookbook 包中包含部署说明书时,我收到了一个厨师错误:
[2013-08-27T16:45:05+00:00] FATAL: Chef::Exceptions::ImmutableAttributeModification: ruby_block[Compile Custom OpsWorks Run List] (opsworks_custom_cookbooks::execute line 3) had an error: Chef::Exceptions::ImmutableAttributeModification: Node attributes are read-only when you do not specify which precedence level to set. To set an attribute use code like `node.default["key"] = "value"'
我已经验证我的食谱没有不正确的节点设置,所以我不知道问题可能是什么。我发现这个错误很难调试,即使我在没有任何修改的情况下包含这本食谱,我也会收到这个错误。如果您能指出正确的方向,请告诉我。