我看了好几天了,我很郁闷。 我们希望使用福尔曼作为一个监测和provisionnig工具。 我们想停用Foreman的ENC,只使用Hiera。 我怎么能pipe理呢?
至于为什么:
例:
定义repo_file_manager(
$ repository_url =“http:// $ {yum_client :: lib :: repository_server} / repos / $ {name} /”,
$ ensure ='present',
$ gpgcheck ='0',
$ enable ='1'){
$ repoconfdir ='/etc/yum.repos.d'
file {“$ {repoconfdir} / $ {name} .repo”:
确保=> $确保,
group =>'root',
mode =>'0644',
owner =>'root',
require => File ['/ etc / yum.repos.d'],
content => template(“yum_client / repofile.erb”),
}
}
${yum_client::lib::repository_server}返回nil,但是当我做hiera(yum_client::lib::repository_server) ,我得到了正确的结果。
工头只是一个ENC,这意味着当被要求的时候,它会发送一个YAML格式的类和variables到Puppet master。
如果一个variables在Hiera中,并且你不用Foreman覆盖它,Hiera中的variables应该被自动使用,因为它不会出现在YAML输出中。 在较新版本的Foreman中,您可以同时执行以下操作:使用Hiera的默认设置,但仍可以使用Foreman覆盖该值。
至于你的问题:iiuc,你正在创build的是一个定义的types,它不具有Hiera作为一个类相同的数据绑定属性。 你可能想要做的就是调用hiera函数,而不是在定义的types中引用“raw”variables。 这可能需要重写这个types,但它应该工作正常,不pipe你是否使用Foreman作为ENC。