Puppet Class: amanda::virtual

Inherited by:
amanda::virtual::server
amanda::virtual::solaris
Defined in:
manifests/virtual.pp

Overview



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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# File 'manifests/virtual.pp', line 1

class amanda::virtual {
  include concat::setup
  include amanda::params

  case $::operatingsystem {
    'Solaris': { include amanda::virtual::solaris }
    default:   { } # do nothing
  }

  @user { $amanda::params::user:
    uid     => $amanda::params::uid,
    gid     => $amanda::params::group,
    home    => $amanda::params::homedir,
    shell   => $amanda::params::shell,
    groups  => $amanda::params::groups,
    comment => $amanda::params::comment,
    tag     => 'amanda_common',
  }

  File {
    owner   => $amanda::params::user,
    group   => $amanda::params::group,
    require => User[$amanda::params::user],
  }

  @file { '/etc/dumpdates':
    ensure => file,
    mode   => '0664',
    owner  => 'root',
  }
  @file { $amanda::params::homedir:
    ensure => directory,
    mode   => '0755';
  }
  @file { "${amanda::params::homedir}/.ssh":
    ensure => directory,
    mode   => '0700';
  }
  @file { "${amanda::params::homedir}/.ssh/config":
    mode    => '0644',
    content => "PreferredAuthentications=publickey\n";
  }
  @file { "${amanda::params::homedir}/.ssh/authorized_keys":
    mode => '0600';
  }
  @file { $amanda::params::amanda_directories:
    ensure => directory,
    mode   => '0700',
  }
  @file { $amanda::params::amanda_files:
    ensure => present,
    mode   => '0600',
  }

  ##
  # This variable is used because parameter defaults don't seem to descend
  # into if blocks.
  $post_package = [
    File['/etc/dumpdates'],
    File[$amanda::params::homedir],
    File["${amanda::params::homedir}/.ssh"],
    File["${amanda::params::homedir}/.ssh/config"],
    File["${amanda::params::homedir}/.ssh/authorized_keys"],
    File[$amanda::params::amanda_directories],
    File[$amanda::params::homedir],
    User[$amanda::params::user],
  ]

  if $amanda::params::generic_package {
    @package { 'amanda':
      name   => $amanda::params::generic_package,
      before => $post_package;
    }
  } else {
    @package { 'amanda/client':
      name   => $amanda::params::client_package,
      before => $post_package,
    }
    @package { 'amanda/server':
      name   => $amanda::params::server_package,
      before => $post_package,
    }
  }

  @concat { "${amanda::params::homedir}/.amandahosts":
    owner   => $amanda::params::user,
    group   => $amanda::params::group,
    mode    => '0600',
    require => File[$amanda::params::homedir],
  }

  Xinetd::Service {
    require => [
      User[$amanda::params::user],
      $post_package,
    ],
  }

  @xinetd::service { 'amanda_udp':
    service_name => 'amanda',
    socket_type  => 'dgram',
    protocol     => 'udp',
    port         => '10080',
    user         => $amanda::params::user,
    group        => $amanda::params::group,
    server       => $amanda::params::amandad_path,
    server_args  => "-auth=bsd ${amanda::params::client_daemons}",
  }
  @xinetd::service { 'amanda_tcp':
    service_name => 'amanda',
    socket_type  => 'stream',
    protocol     => 'tcp',
    port         => '10080',
    user         => $amanda::params::user,
    group        => $amanda::params::group,
    server       => $amanda::params::amandad_path,
    server_args  => "-auth=bsdtcp ${amanda::params::client_daemons}",
  }
  @xinetd::service { 'amanda_indexd':
    service_name => 'amandaidx',
    socket_type  => 'stream',
    protocol     => 'tcp',
    wait         => 'no',
    port         => '10082',
    user         => $amanda::params::user,
    group        => $amanda::params::group,
    server       => $amanda::params::amandaidx_path,
    server_args  => "-auth=bsdtcp ${amanda::params::server_daemons}",
  }
  @xinetd::service { 'amanda_taped':
    service_name => 'amidxtape',
    socket_type  => 'stream',
    protocol     => 'tcp',
    wait         => 'no',
    port         => '10083',
    user         => $amanda::params::user,
    group        => $amanda::params::group,
    server       => $amanda::params::amandataped_path,
    server_args  => "-auth=bsdtcp ${amanda::params::server_daemons}";
  }

}