Saz-Sudoをインストールし、それに基づいてsite_Sudoモジュールを作成しました(願っています)。これが私のsite_Sudo/manifest/init.ppファイルにあるものです:
class { 'site_Sudo': }
Sudo::conf { 'web':
source => 'puppet:///files/etc/sudoers',
}
Sudo::conf { 'syseng':
priority => 10,
content => "%sysadm ALL=(ALL) NOPASSWD: ALL",
}
include Sudo
私が何をしても、ターゲット上のsudoersファイルは常にsaz-Sudoモジュールのsudoers.rhel6ファイルで上書きされます。
私もcommon.yamlを使用しています:
classes:
- site_Sudo
それはあなたのファイルからの正確なコピーですか? class { 'site_Sudo': }
行は、そのクラスを構成に含めますが、モジュールのinit.pp
で行う必要があるようにクラスを定義しません。これにより、ファイル内の残りの構成が適用されなくなります(このファイルはそのクラスをロードするためにのみ評価されているため、他の行はimport
ステートメントの場合のように評価されません)。
代わりに、次のようになります。
class site_Sudo {
include Sudo
Sudo::conf { 'web':
source => 'puppet:///files/etc/sudoers',
}
Sudo::conf { 'syseng':
priority => 10,
content => "%sysadm ALL=(ALL) NOPASSWD: ALL",
}
}
[〜#〜] readme [〜#〜] によると、パラメータをSudo
クラスに送信する必要があります。
class { 'Sudo':
config_file_replace => true,
}
プレーンの代わりに
include Sudo
どのクローバー/etc/sudoers
as 記載 。
[〜#〜] readme [〜#〜] およびクラス Sudo :: configs を確認してください。
使用されている規則はかなり奇妙です(私見では、クラスSudoにハッシュパラメーターを追加する方が簡単です)...しかし、Hieraでは非常にうまく機能しているようです。
値の例:
classes:
- Sudo
- Sudo::configs
Sudo::configs:
'syseng':
'priority' : 10
'content' : "%sysadm ALL=(ALL) NOPASSWD: ALL"
saz/Sudoは、sudoers.dファイルと#includeを使用するように設計されています。これが、sudoersファイルをクリーンなファイルで上書きして、正しいファイルであることを確認する理由です。これらのSudo :: conf宣言により、/ etc/sudoersを直接変更する代わりに、ファイルが/etc/sudoers.dに表示されます。