diff options
author | Lebedev Vadim <abraham1901@gmail.com> | 2013-03-18 18:55:58 +0400 |
---|---|---|
committer | Adam Jahn <ajjahn@gmail.com> | 2013-03-19 21:14:30 -0400 |
commit | 32f1dc699c77ae665d8c8e39d8d9c2c3fb497df9 (patch) | |
tree | 6b2edbb451b76b18c3bbc3a49d591e91e24e2b06 /manifests/server.pp | |
parent | d612151695cb9121d4aebcdb8a39c0ee87f7c612 (diff) | |
download | puppet-samba-32f1dc699c77ae665d8c8e39d8d9c2c3fb497df9.tar.gz puppet-samba-32f1dc699c77ae665d8c8e39d8d9c2c3fb497df9.tar.bz2 |
Add implementation join Samba server into Active Directory
Conflicts:
manifests/server/share.pp
Diffstat (limited to 'manifests/server.pp')
-rw-r--r-- | manifests/server.pp | 58 |
1 files changed, 16 insertions, 42 deletions
diff --git a/manifests/server.pp b/manifests/server.pp index cc1a951..9b6d3c0 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -18,53 +18,27 @@ class samba::server($interfaces = '', notify => Class['samba::server::service'] } - augeas { 'global-interfaces': - context => $context, - changes => $interfaces ? { - default => ["set \"${target}/interfaces\" '${interfaces}'", "set \"${target}/bind interfaces only\" yes"], - '' => ["rm \"${target}/interfaces\"", "rm \"${target}/bind interfaces only\""], - }, - require => Augeas['global-section'], - notify => Class['samba::server::service'] - } - augeas { 'global-security': - context => $context, - changes => $security ? { - default => "set \"${target}/security\" '${security}'", - '' => "rm \"${target}/security\"", - }, - require => Augeas['global-section'], - notify => Class['samba::server::service'] - } - - augeas { 'global-server_string': - context => $context, - changes => $server_string ? { - default => "set \"${target}/server string\" '${server_string}'", - '' => "rm \"${target}/server string\"", - }, - require => Augeas['global-section'], - notify => Class['samba::server::service'] + set_samba_option { + 'bind interfaces only': value => 'yes'; + 'security': value => $security; + 'server string': value => $server_string; + 'unix password sync': value => $unix_password_sync; + 'workgroup': value => $workgroup; } +} - augeas { 'global-unix_password_sync': - context => $context, - changes => $unix_password_sync ? { - default => "set \"${target}/unix password sync\" '$unix_password_sync'", - '' => "rm \"${target}/unix_password_sync\"", - }, - require => Augeas['global-section'], - notify => Class['samba::server::service'] +define set_samba_option ( $value = '', $signal = 'samba::server::service' ) { + $context = $samba::server::context + $target = $samba::server::target + $changes = $value ? { + default => "set \"${target}/$name\" $value", + '' => "rm ${target}/$name", } - - augeas { 'global-workgroup': + augeas { "samba-$name": context => $context, - changes => $workgroup ? { - default => "set ${target}/workgroup '${workgroup}'", - '' => "rm ${target}/workgroup", - }, + changes => $changes, require => Augeas['global-section'], - notify => Class['samba::server::service'] + notify => Class[$signal] } } |