我可以按照logging的方式在angular色文件中设置属性,但是我无法访问我正在使用的食谱已经设置的属性。
例如在/roles/appserver.rb中:
name "appserver" run_list(%w{ recipe[tomcat::default] }) default_attributes( :tomcat => { :java_options => "-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=" + node[:tomcat][:log_dir] } )
我得到的是一个例外,说明厨师找不到'节点'方法/variables。
谢谢
你不能。 将angular色上传到服务器时, Ruby DSL的angular色从Ruby转换为JSON。 节点对象不可用,因为它不在Chef运行的上下文中处理。
如果要结合节点属性,则应该在配方中执行此操作,例如:
"#{node[:tomcat][:java_options]}#{node[:tomcat][:log_dir]}"
你可以在angular色里面使用require_relative 'base_role_file'
,这个需要的文件可能会设置一些全局variables供你使用。 漂亮哈克。