私は、Puppetのクラス継承を使用しようとしています。 fooという名前の基本クラスと、という名前の継承されたクラスがあります。 file
またはpackage
のリソースをオーバーライドすると、正常に動作し、正常に動作します。しかし同時に、私はsudo
を設定するためのカスタムモジュールを使用しています。継承を使用する場合のPuppetクラスのオーバーライド
sudo
クラスを内部クラスバーからオーバーライドしようとすると問題が発生します。次のように人形のクラスは、次のとおりです。
class foo {
$nrpe_plugin_pkgs = [ .... ]
service { 'nrpe service':
..
}
package { $nrpe_plugin_pkgs:
..
}
file { '/etc/nagios/nrpe.cfg':
..
}
file { '/etc/resolv.conf':
..
}
class { 'sudo':
purge => true,
config_file_replace => true,
}
sudo::conf { 'sudo_conf':
priority => 10,
content => [
'%gr1 ALL=(userfoo) NOPASSWD: ALL',
'%gr1 ALL=(root) NOPASSWD: /usr/bin/wbinfo *',
]
}
}
class bar inherits foo {
File['/etc/resolv.conf'] {
..
}
sudo::conf { 'sudo_conf':
priority => 10,
content => [
'%gr2 ALL=NOPASSWD:/bin/chown userbar\:gr2 /dirbar/*',
'%gr2 ALL=NOPASSWD:/bin/chown -R userbar\:gr2 /dirbar/*',
'%gr2 ALL=NOPASSWD:/bin/chmod * /dirbar/*',
]
}
}
は、私はちょうどのみのresolv.confとsudoの設定をカスタマイズしたいのですが、次のように私はエラーを取得しています:
Error while evaluating a Resource Statement, Evaluation Error: Error while evaluating a Resource Statement, Duplicate declaration: Sudo::Conf[sudo_conf] is already declared in file /etc/puppetlabs/code/environments/foobar_servers/manifests/foobar.pp:80; cannot redeclare at /etc/puppetlabs/code/environments/foobar_servers/manifests/foobar.pp:335 at /etc/puppetlabs/code/environments/foobar_servers/manifests/foobar.pp:335:3 on node foobartest01
の/ etc/sudoers.d/10_sudo_confファイルが作成される予定です。どうすればそれを達成できますか?
使用方法:パペット4.9コミュニティバージョン。
助けてください。あなたが使用しているので、resolv.confのオーバーライドが、ここで働く
ありがとうございました。これは完璧に動作します。 – Kadir