From 4abcccd9632020c9724d0a26c589a3f69ed8ef6d Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Fri, 27 Mar 2015 16:26:15 -0400 Subject: implement parameters w/ defaults for server class and - remove $real_* variables from server::sandbox resource - change use_nagios global to manage_nagios parameter --- manifests/server.pp | 195 +++++++++++++++++----------------------------------- 1 file changed, 64 insertions(+), 131 deletions(-) diff --git a/manifests/server.pp b/manifests/server.pp index f702056..7a09d23 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -5,40 +5,29 @@ define backupninja_server_realize($host) { Ssh_authorized_key <<| tag == "backupninja-$host" |>> } -class backupninja::server { +class backupninja::server ( + $backupdir = '/backup', + $backupdir_ensure = 'directory', + $usermanage = 'doit', + $backupserver_tag = $::fqdn, + $manage_nagios = true +) { - $real_backupdir = $backupdir ? { - '' => "/backup", - default => $backupdir, - } - $real_usermanage = $usermanage ? { - '' => 'doit', - default => $usermanage - } - $real_backupserver_tag = $backupserver_tag ? { - '' => $fqdn, - default => $backupserver_tag - } - $real_backupdir_ensure = $backupdir_ensure ? { - '' => "directory", - default => $backupdir_ensure, - } - group { "backupninjas": ensure => "present", gid => 700 } - file { "$real_backupdir": - ensure => "$real_backupdir_ensure", + file { $backupdir: + ensure => $backupdir_ensure, mode => 0710, owner => root, group => "backupninjas", - require => $real_backupdir_ensure ? { + require => $backupdir_ensure ? { 'directory' => undef, - default => File["$real_backupdir_ensure"], + default => File["$backupdir_ensure"], } } - if $use_nagios { + if $manage_nagios { include nagios::nsca::client @@ -58,148 +47,92 @@ class backupninja::server { } # collect all resources from hosted backups - Backupninja_server_realize <<| tag == "$real_backupserver_tag" |>> - - if !defined(Package["rsync"]) { - if $rsync_ensure_version == '' { $rsync_ensure_version = 'installed' } - package { 'rsync': - ensure => $rsync_ensure_version, - } - } + Backupninja_server_realize <<| tag == "$backupserver_tag" |>> # this define allows nodes to declare a remote backup sandbox, that have to # get created on the server define sandbox( - $user = false, $host = false, $installuser = true, $dir = false, $manage_ssh_dir = true, - $ssh_dir = false, $authorized_keys_file = false, $key = false, $keytype = 'dss', $backupkeys = false, $uid = false, - $gid = "backupninjas", $backuptag = false, $nagios2_description = "backups") + $user = $name, $host = $::fqdn, $installuser = true, $dir = "${backupninja::server::backupdir}/${::fqdn}", $manage_ssh_dir = true, + $ssh_dir = false, $authorized_keys_file = 'authorized_keys', $key = false, $keytype = 'dss', $backupkeys = "${fileserver}/keys/backupkeys", $uid = false, + $gid = "backupninjas", $backuptag = "backupninja-${::fqdn}", $nagios_description = 'backups') { - - $real_user = $user ? { - false => $name, - default => $user, - '' => $name, - } - $real_host = $host ? { - false => $fqdn, - default => $host, - } - $real_backupkeys = $backupkeys ? { - false => "$fileserver/keys/backupkeys", - default => $backupkeys, - } - $real_dir = $dir ? { - false => "${backupninja::server::real_backupdir}/$fqdn", - default => $dir, - } - $real_ssh_dir = $ssh_dir ? { - false => "${real_dir}/.ssh", - default => $ssh_dir, - } - $real_authorized_keys_file = $authorized_keys_file ? { - false => "authorized_keys", - default => $authorized_keys_file, - } - $real_backuptag = $backuptag ? { - false => "backupninja-$fqdn", - default => $backuptag, - } - $real_nagios2_description = $nagios2_description ? { - false => "backups", - default => $nagios2_description, + if $ssh_dir == false { + $ssh_dir = "${dir}/.ssh" } - if $use_nagios { + if $manage_nagios { # configure a passive service check for backups - nagios::service::passive { $nagios2_description: } + nagios::service::passive { $nagios_description: } } - if !defined(Backupninja_server_realize["${fqdn}@${real_host}"]) { - # this defines just maps that $real_host host backups for $fdqn - @@backupninja_server_realize { "${fqdn}@${real_host}": - host => $fqdn, - tag => $real_host, + if !defined(Backupninja_server_realize["${::fqdn}@${host}"]) { + @@backupninja_server_realize { "${::fqdn}@${host}": + host => $::fqdn, + tag => $host, } } - if !defined(File["$real_dir"]) { - @@file { "$real_dir": - ensure => directory, - mode => 0750, owner => $real_user, group => 0, - tag => "$real_backuptag", - } - } + ensure_resource('file', $dir, { + 'ensure' => 'directory', + 'mode' => '0750', + 'owner' => $user, + 'group' => 0, + 'tag' => $backuptag + }) + case $installuser { true: { - case $manage_ssh_dir { - true: { - if !defined(File["$real_ssh_dir"]) { - @@file { "${real_ssh_dir}": - ensure => directory, - mode => 0700, owner => $real_user, group => 0, - require => [User[$real_user], File["$real_dir"]], - tag => "$real_backuptag", - } + if $manage_ssh_dir == true { + if !defined(File["$ssh_dir"]) { + @@file { "${ssh_dir}": + ensure => directory, + mode => 0700, owner => $user, group => 0, + require => [User[$user], File["$dir"]], + tag => "$backuptag", } } } case $key { false: { - if !defined(File["${real_ssh_dir}/${real_authorized_keys_file}"]) { - @@file { "${real_ssh_dir}/${real_authorized_keys_file}": + if !defined(File["${ssh_dir}/${authorized_keys_file}"]) { + @@file { "${ssh_dir}/${authorized_keys_file}": ensure => present, mode => 0644, owner => 0, group => 0, - source => "$real_backupkeys/${real_user}_id_${keytype}.pub", - require => File["${real_ssh_dir}"], - tag => "$real_backuptag", + source => "${backupkeys}/${user}_id_${keytype}.pub", + require => File["${ssh_dir}"], + tag => "$backuptag", } } } default: { if !defined(Ssh_autorized_key["$real_user"]) { - @@ssh_authorized_key{ "$real_user": + @@ssh_authorized_key{ "$user": type => $keytype, key => $key, - user => $real_user, - target => "${real_ssh_dir}/${real_authorized_keys_file}", - tag => "$real_backuptag", - require => User[$real_user], + user => $user, + target => "${ssh_dir}/${authorized_keys_file}", + tag => "$backuptag", + require => User[$user], } } } } - case $uid { - false: { - if !defined(User["$real_user"]) { - @@user { "$real_user": - ensure => "present", - gid => "$gid", - comment => "$real_user backup sandbox", - home => "$real_dir", - managehome => true, - shell => "/bin/bash", - password => '*', - require => Group['backupninjas'], - tag => "$real_backuptag" - } - } - } - default: { - if !defined(User["$real_user"]) { - @@user { "$real_user": - ensure => "present", - uid => "$uid", - gid => "$gid", - comment => "$real_user backup sandbox", - home => "$real_dir", - managehome => true, - shell => "/bin/bash", - password => '*', - require => Group['backupninjas'], - tag => "$real_backuptag" - } - } + if !defined(User["$user"]) { + @@user { "$user": + ensure => "present", + uid => $uid ? { + false => undef, + default => $uid + }, + gid => "$gid", + comment => "$user backup sandbox", + home => "$dir", + managehome => true, + shell => "/bin/bash", + password => '*', + require => Group['backupninjas'], + tag => "$backuptag" } } } -- cgit v1.2.3