As I have very recently dug into modifying sudoers myself, you may want to 
look at the saz/sudo module at Puppet Forge.   It allows you to do a lot of 
different methods to create a sudoers file that fits the supported OS. 

If you want to just do edits, you may want to look at the stdlib - 
file_line type. There are examples for it that show sudoers specifically.  

In my environment I am using the file_line with a matcher with a regular 
expression to change the directory colors from dark blue to the lighter 
blue.  

class os_config::ls_dir_color ($dir_default_color = '01;34') {
  # This is used to change the DIR color from dark blue to a brighter blue 
to
  # see it on a black background
  # It will use the file_line
  include stdlib

  file_line { 'dir_colors':
    path    => '/etc/DIR_COLORS',
    line    => "DIR ${dir_default_color} # directory",
    match   => '^DIR\s*.*',
    replace => true,
  }

For sudoers you could do that to check if the line already exists to remove 
it with ensure => absent or add it with ensure => present. Since I'm using 
Foreman as a front-end to Puppet I use the smart parameters that I can 
override on a host by host basis when needed.  Here is a pseudo code 
snippet that may do something like what you want.

class sudo::add_dba_perm ($ensure = 'present', $dba_perm_line = '%dba 
ALL=ALL NOPASSWD: ALL') {
  include stdlib

  file_line { 'sudo_dba':
    path    => '/etc/sudoers',
    ensure => $ensure,
    line    => $dba_perm_line,
    match   => '^%dba\s*.*',
    replace => true,
  }

Now I haven't coded or tested the above, but theoretically something coded 
along these lines should work. As I don't yet have a full grasp on doing 
defines and create_resources, I have to stay basic in my coding. 

Hope this helps. 

On Wednesday, April 26, 2017 at 10:14:34 PM UTC-4, Warron French wrote:
>
> Does it make sense to use the puppetlabs-inifile module when trying to 
> modify the /etc/sudoers file?
>
> From my observations, the /etc/sudoers file isn't exactly laid out in an 
> ini-stylized configuration; like the /etc/smb.conf is.
>
> Comments welcomed.
> --------------------------
> Warron French
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/95299141-786a-449d-a51d-dadfcedba7d4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to