我有两个傀儡模块m1
和m2
。请参阅以下具有相同资源类型和名称的示例模块:包含/声明两个包含相同资源和名称的类
class m1 {
service {'firewalld':
ensure => 'stopped',
enable => 'false',
}
... // more resource types
}
class m2 {
service {'firewalld':
ensure => 'running',
enable => 'true',
hasrestart => true,
subscribe => Exec['firewall-cmd'],
}
package {'httpd':
ensure => 'present',
}
exec { 'firewall-cmd':
command => "firewall-cmd --zone=public --add-port=80/tcp --add-port=443/tcp --permanent",
path => "/usr/bin/",
refreshonly => true,
subscribe => Package['httpd'],
}
... // more resource types
}
我想将这两个模块应用于多个节点。当我尝试应用这些模块,它给了我错误Duplicate Declaration for resource type
我是新来的傀儡。我试图设计出第三个模块与普通的资源类型,并继承该第三模块m3
到m1
和m2
后,它给我的错误Parameter 'ensure' is already set on Service puppet
我如何设计我的模块来摆脱这些错误的? 我不想创建单个模块,因为对于某些节点,我只想应用m1
或m2
而不是两者。
一类被禁用和停止'firewalld'和其他是启用和启动'firewalld'。从完全Puppet不可知的角度来看这些,这些是单个系统的互不兼容的配置。木偶在这里做正确的事情,并阻止这种不可能的状态。 –
@MattSchuchard - 即使我改变了像“确保”这些属性的值,我也得到了同样的错误。 – kd12