解決策 1:
sudoのどのバージョン?お使いのバージョンの sudo は #includedir
を使用してサポートしていますか? フラグメント ディレクトリに分割するオプション /etc/sudoers.d/
?
もしそうなら、その機能を使って構成を構築することをお勧めします。
メインの設定ファイルを /etc/sudoers
に配信する これには、制御するすべてのホストに共通するすべての設定が含まれます。次に、ロール固有の構成を /etc/sudoers.d/
内のファイルにドロップします。 .
各クラスまたは puppet セクションは、そのクラスに直接関連する sudo 構成の小さな部分を更新する責任があります。
解決策 2:
https://puppet.com/docs/puppet/latest/lang_virtual.html で仮想リソースを確認してください。
これはまさにそれを行います。一部のシステムではリソースを「認識」し、一部のシステムでは認識しません。
解決策 3:
Puppet テンプレートを使用して行うことができます... 必要なユーザーの小さな ruby スニペット/変数を使用したサイト固有の構成。 (後で例を投稿します)
これを処理する従来の方法は、 /etc/sudoers
で名前付きユーザーの代わりにグループ定義を使用することです .管理の手間が減るかもしれません。