我可以按照文档中的说明在角色文件中设置属性,但我无法访问我正在使用的说明书已经设置的属性。
例如在 /roles/appserver.rb 中:
name "appserver"
run_list(%w{
recipe[tomcat::default]
})
default_attributes(
:tomcat => {
:java_options => "-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=" + node[:tomcat][:log_dir]
}
)
Run Code Online (Sandbox Code Playgroud)
我得到的是一个异常,说明厨师找不到“节点”方法/变量。
谢谢
jti*_*man 12
你不能。当你用knife上传角色到服务器时,角色Ruby DSL从Ruby转换成JSON。节点对象不可用,因为它不在 Chef 运行的上下文中处理。
如果要组合节点属性,则应在配方中执行此操作,例如:
"#{node[:tomcat][:java_options]}#{node[:tomcat][:log_dir]}"
Run Code Online (Sandbox Code Playgroud)