我正在尝试使用puppet(v 3.8.7,主/代理设置)和provided puppet scripts部署WSO2产品。除了小细节(未定义的wso2 :: hosts_template变量,ensure_resource的使用,......),我的事实测试被未定义的模板变量阻止。
在我的角色定义中,我创建了一个新的产品实例,例如
class { 'wso2am':
}
我提出了一些事实:
product_name: wso2am
product_version: 2.0.0
product_profile: default
platform: default
vm_type:
应该使用默认设置安装wso2am
错误消息如下:
undefined method `each' for nil:NilClass
(erb):25:in `get_binding'
/nix/store/xivrmfsyc7dc52m1zv1g52ziwjag5n4f-ruby-2.3.3/lib/ruby/2.3.0/erb.rb:864:in `eval'
...
in ./modules/wso2am/templates/2.0.0/repository/conf/datasources/am-datasources.xml.erb at # SourcePos {sourceName = "./modules/wso2base/manifests/push_templates.pp", sourceLine = Pos 26, sourceColumn = Pos 10}
我认为模板参数 am_datasources 未定义。实际上我在 modules / wso2base / manifest / init.pp 中看到参数是从hieradata加载的,但模板参数(am_datasources只是其中之一)从未传递给调用的定义(wso2base) :: push_templates)直接。
脚本是否假设某些环境设置或额外的数据可见性?