木偶saz / sudo模块implmentation

我试图部署saz / sudo模块来pipe理我们的sudoconfiguration(我对puppet(〜3day)很新,所以请原谅我的潜在无知)。

我们目前的sudoconfiguration都包含在一个单独的(大的)/ etc / sudoers文件中,我想在sudoers.d中分解成相关的文件。

我已经能够安装saz / sudo模块,但一直在摸索configuration它。 我现在通过使用下面的configuration将它包含在另一个模块site_sudo中:

# cwd : /etc/puppetlabs/code/environments/production/modules site_sudo/examples site_sudo/files site_sudo/Gemfile site_sudo/manifests site_sudo/metadata.json site_sudo/Rakefile site_sudo/README.md site_sudo/spec site_sudo/examples/init.pp site_sudo/files/etc site_sudo/files/etc/sudoers.d site_sudo/files/etc/sudoers.d/svc_servicenanme site_sudo/files/etc/sudoers.d/user_username site_sudo/manifests/init.pp site_sudo/spec/classes site_sudo/spec/spec_helper.rb site_sudo/spec/classes/init_spec.rb 

与init.pp的内容如下:

 [root@puppet modules]# cat site_sudo/manifests/init.pp | grep -vP '^#' class site_sudo { class { 'sudo': } sudo::conf { 'user_username': source => 'puppet:///modules/site_sudo/etc/sudoers.d/user_username', } sudo::conf { 'svc_servicename': source => 'puppet:///modules/site_sudo/etc/sudoers.d/svc_servicename', } } [root@puppet modules]# 

我的问题:这是实施saz / sudo最好的/正确的方法吗?

我有点希望在主要的saz / sudo模块中拥有所有这些configuration,而不是像这样创buildsite_sudo,但是文档不清楚要做到这一点。

如果可以在主要的saz / sudo模块中包含这个configuration,有人可以build议如何实现这个?

您正在做正确的事情,保持您使用的模块以外的configuration。

模块应该是可重用的,如果你定制一个模块来包含站点本地configuration,那么你将需要维护你的定制。 在没有合并你的改变的情况下(取决于你如何维护改变和安装模块,这可能是从简单到困难的任何地方),将不可能安装较新版本的模块。

该模块通过sudo::conf及其类参数来提供一个公共接口来定制你所需要的一切。

您创build的site_sudo类是一个configuration文件类(请参阅: angular色和configuration文件 ),用于使用您的站点和服务首选项的saz / sudo模块configurationsudo。 在Puppet环境中这是一个常用的,很好用的devise模式,所以一定要坚持下去。

saz / sudo支持的第二种方法是使用sudo::configs键在Hiera中 定义configuration 。 它会查看这个数据,然后应用configuration。 使用Hiera是将configuration保持在您使用的模块之外的另一种好方法。 您的Hiera数据文件可以存储在您的Puppet环境中。

  • Hiera 5(Puppet 4.9+)快速入门指南