Puppet-在Nodes.pp中设置定义的类型
如何覆盖nodes.pp中定义的类型?我希望能够使用Puppet-在Nodes.pp中设置定义的类型,puppet,puppet-enterprise,Puppet,Puppet Enterprise,如何覆盖nodes.pp中定义的类型?我希望能够使用节点.pp设置自定义域案例默认值不是选项 我用的是木偶6.0 以下方法不起作用。它说找不到声明的类resolv::resolv\u config。 根据这一点,它看起来像是在3.0中使用的 nodes.pp node "test001" { class { 'resolv::resolv_config': domain => "something.local", } } 模块/resolv/manifests/init.
节点.pp
设置自定义域
<代码>案例默认值不是选项
我用的是木偶6.0
以下方法不起作用。它说找不到声明的类resolv::resolv\u config
。
根据这一点,它看起来像是在3.0中使用的
nodes.pp
node "test001" {
class { 'resolv::resolv_config':
domain => "something.local",
}
}
模块/resolv/manifests/init.pp
class resolv {
case $hostname {
/^[Abc][Xyz]/: {
resolv:resolv_config { 'US':
domain => "mydomain.local",
}
}
}
}
define resolv::resolv_config($domain){
file { '/etc/resolv.conf':
content => template("resolv/resolv.conf.erb"),
}
}
决议conf.erb
domain <%= @domain %>
域
这里有几个问题,但导致“找不到已声明的类”错误的一个原因是您在声明已定义的类型时使用了错误的语法。您的代码应该是这样的:
node "test001" {
resolv::resolv_config { 'something.local':
domain => "something.local",
}
}
文档中有声明已定义类型的示例
一旦你开始工作,你会发现另一个问题,在这个定义中
define resolv::resolv_config($domain){
file { '/etc/resolv.conf':
content => template("resolv/resolv.conf.erb"),
}
}
如果您尝试声明多个resolv::resolv_config
,将导致错误,因为它们都将尝试声明/etc/resolv.conf
文件资源。你几乎肯定想用一个