Merge branch 'koumbit' into shared
This commit is contained in:
commit
208aefb872
12 changed files with 102 additions and 40 deletions
|
@ -36,3 +36,4 @@ root ALL=(ALL) ALL
|
|||
# Samples
|
||||
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
|
||||
# %users localhost=/sbin/shutdown -h now
|
||||
#includedir /usr/local/etc/sudoers.d
|
||||
|
|
27
files/sudoers/sudoers
Normal file
27
files/sudoers/sudoers
Normal file
|
@ -0,0 +1,27 @@
|
|||
#
|
||||
# This file MUST be edited with the 'visudo' command as root.
|
||||
#
|
||||
# Please consider adding local content in /etc/sudoers.d/ instead of
|
||||
# directly modifying this file.
|
||||
#
|
||||
# See the man page for details on how to write a sudoers file.
|
||||
#
|
||||
Defaults env_reset
|
||||
Defaults mail_badpass
|
||||
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
|
||||
# Host alias specification
|
||||
|
||||
# User alias specification
|
||||
|
||||
# Cmnd alias specification
|
||||
|
||||
# User privilege specification
|
||||
root ALL=(ALL:ALL) ALL
|
||||
|
||||
# Allow members of group sudo to execute any command
|
||||
%sudo ALL=(ALL:ALL) ALL
|
||||
|
||||
# See sudoers(5) for more information on "#include" directives:
|
||||
|
||||
#includedir /etc/sudoers.d
|
20
manifests/access.pp
Normal file
20
manifests/access.pp
Normal file
|
@ -0,0 +1,20 @@
|
|||
define sudo::access (
|
||||
$ensure = 'present',
|
||||
$user = undef,
|
||||
$access = 'ALL=(ALL) ALL'
|
||||
) {
|
||||
include sudo
|
||||
if $user == undef {
|
||||
$real_user = $name
|
||||
} else {
|
||||
$real_user = $user
|
||||
}
|
||||
# there shouldn't be a dot in those filenames!
|
||||
file { "${sudo::dir}/01-user_access-${title}":
|
||||
ensure => 'present',
|
||||
owner => 'root',
|
||||
group => 0,
|
||||
mode => '0440',
|
||||
content => "# THIS FILE IS MANAGED BY PUPPET !\n${real_user} ${access}\n",
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
class sudo::base {
|
||||
if $sudo::deploy_sudoers {
|
||||
file{'/etc/sudoers':
|
||||
source => [ "puppet:///modules/site_sudo/sudoers/${::fqdn}/sudoers",
|
||||
"puppet:///modules/site_sudo/sudoers/sudoers",
|
||||
"puppet:///modules/sudo/sudoers/${::operatingsystem}/sudoers",
|
||||
"puppet:///modules/sudo/sudoers/sudoers" ],
|
||||
owner => root, group => 0, mode => 0440;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
class sudo::freebsd inherits sudo::base {
|
||||
package{'sudo':
|
||||
ensure => installed,
|
||||
}
|
||||
|
||||
if $sudo_deploy_sudoers {
|
||||
File['/etc/sudoers']{
|
||||
path => "/usr/local/etc/sudoers",
|
||||
require => Package['sudo'],
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,11 +3,28 @@
|
|||
# GPLv3
|
||||
|
||||
class sudo(
|
||||
$deploy_sudoers = false
|
||||
) {
|
||||
case $::kernel {
|
||||
linux: { include sudo::linux }
|
||||
freebsd: { include sudo::freebsd }
|
||||
default: { include sudo::base }
|
||||
$deploy_sudoers = $sudo::deploy_sudoers,
|
||||
$path = $sudo::params::path,
|
||||
$dir = $sudo::params::dir
|
||||
) inherits sudo::params {
|
||||
package {'sudo':
|
||||
ensure => installed,
|
||||
}
|
||||
if $sudo::deploy_sudoers {
|
||||
file {
|
||||
$sudo::path:
|
||||
source => [ "puppet:///modules/site_sudo/sudoers/${::fqdn}/sudoers",
|
||||
"puppet:///modules/site_sudo/sudoers/sudoers",
|
||||
"puppet:///modules/sudo/sudoers/${::operatingsystem}/sudoers",
|
||||
"puppet:///modules/sudo/sudoers/sudoers" ],
|
||||
require => Package['sudo'],
|
||||
owner => root, group => 0, mode => 0440;
|
||||
}
|
||||
}
|
||||
file {
|
||||
$sudo::dir:
|
||||
ensure => directory,
|
||||
require => Package['sudo'],
|
||||
owner => root, group => 0, mode => 0550;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
class sudo::linux inherits sudo::base {
|
||||
package{'sudo':
|
||||
ensure => installed,
|
||||
}
|
||||
|
||||
if $sudo_deploy_sudoers {
|
||||
File['/etc/sudoers']{
|
||||
require => Package['sudo'],
|
||||
}
|
||||
}
|
||||
}
|
11
manifests/params.pp
Normal file
11
manifests/params.pp
Normal file
|
@ -0,0 +1,11 @@
|
|||
class sudo::params {
|
||||
$dir = $::kernel ? {
|
||||
/freebsd/ => '/usr/local/etc/sudoers.d',
|
||||
default => '/etc/sudoers.d',
|
||||
}
|
||||
$path = $::kernel ? {
|
||||
/freebsd/ => '/usr/local/etc/sudoers',
|
||||
default => '/etc/sudoers',
|
||||
}
|
||||
$deploy_sudoers = false
|
||||
}
|
13
manifests/user_alias.pp
Normal file
13
manifests/user_alias.pp
Normal file
|
@ -0,0 +1,13 @@
|
|||
define sudo::user_alias (
|
||||
$members,
|
||||
$ensure = 'present'
|
||||
) {
|
||||
# this is 00-prefixed so that it's defined before the other definitions
|
||||
file { "${sudo::dir}/00-user_alias-${title}":
|
||||
ensure => $ensure,
|
||||
owner => 'root',
|
||||
group => 0,
|
||||
mode => '0440',
|
||||
content => "# THIS FILE IS MANAGED BY PUPPET !\n\nUser_Alias ${name} = ${members}\n",
|
||||
}
|
||||
}
|
3
tests/base.pp
Normal file
3
tests/base.pp
Normal file
|
@ -0,0 +1,3 @@
|
|||
class { 'sudo': dir => '/tmp/sudoers.d' }
|
||||
|
||||
sudo::access { 'foo': }
|
1
tests/deploy.pp
Normal file
1
tests/deploy.pp
Normal file
|
@ -0,0 +1 @@
|
|||
class { 'sudo': deploy_sudoers => true }
|
3
tests/freebsd.pp
Normal file
3
tests/freebsd.pp
Normal file
|
@ -0,0 +1,3 @@
|
|||
# needs to be ran with FACTER_kernel=freebsd puppet apply --modulepath=.. tests/freebsd.pp
|
||||
|
||||
sudo::access { 'foo': }
|
Loading…
Reference in a new issue