aboutsummaryrefslogtreecommitdiff
path: root/manifests/client.pp
blob: f0531a0d74b05d05f7bc48fed38ca27256aa618c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
class backupninja::client inherits backupninja::client::defaults {
  define key(
    $user = false, $host = false, $createkey=false, $installkey=false,
    $keyowner=false, $keygroup=false, $keystore=false, $keystorefspath='',
    $keytype=false,
    $keydest=false, $keydestname=false )
  {
    $real_user = $user ? {
      false => $name,
      default => $user
    }
    $real_host = $host ? {
      false => $user,
      default => $host
    }
    $install_key = $installkey ? {
    	false => "${backupninja::client::defaults::real_keymanage}",
	default => $installkey,
    }
    $key_owner = $keyowner ? {
    	false => "${backupninja::client::defaults::real_keyowner}",
	default => $keyowner,
    }
    $key_group = $keygroup ? {
    	false => "${backupninja::client::defaults::real_keygroup}",
	default => $keygroup,
    }
    $key_store = $keystore ? {
    	false => "${backupninja::client::defaults::real_keystore}",
	default => $keystore,
    }
    $key_type = $keytype ? {
    	''    => "${backupninja::client::defaults::real_keytype}",
    	false => "${backupninja::client::defaults::real_keytype}",
	default => $keytype,
    }
    $key_dest = $keydest ? {
      false   => "${backupninja::client::defaults::real_keydestination}",
      default => $keydest,
    }
    $key_dest_name = $keydestname ? {
      false => "id_$key_type",
      default => $keydestname,
    }
    $key_dest_file = "${key_dest}/${key_dest_name}"

    if $createkey == true {
      if $keystorefspath == false {
        err("need to define a destination directory for sshkey creation!")
      }
      $ssh_keys = ssh_keygen("${keystorefspath}/${key_dest_name}")
    }
      

    case $install_key {
      true: {
        if !defined(File["$key_dest"]) {
          file { "$key_dest":
            ensure => directory,
            mode => 0700, owner => $key_owner, group => $key_group,
          }
        }
        if !defined(File["$key_dest_file"]) {
          file { "$key_dest_file":
            source => "${key_store}/${key_dest_name}",
            mode => 0400, owner => $key_owner, group => $key_group,
            require => File["$key_dest"],
          }
        }
      }
    }
  }
}