27a75be2d453be6e35b3de5cec5a2321345f943f
[mirror/dsa-puppet.git] / modules / vsftpd / manifests / site_systemd.pp
1 define vsftpd::site_systemd (
2         $root,
3         $binds=['[::]'],
4         $chown_user='',
5         $writable=false,
6         $writable_other=false,
7         $banner="${name} FTP Server",
8         $max_clients=100,
9         $logfile="/var/log/ftp/vsftpd-${name}.debian.org.log",
10         $ensure=present,
11 ) {
12         include vsftpd
13         include ferm::ftp_conntrack
14
15         case $ensure {
16                 present,absent: {}
17                 default: { fail ( "Invald ensure `$ensure' for $name" ) }
18         }
19
20         $ensure_service = $ensure ? {
21                 present => running,
22                 absent  => stopped,
23         }
24
25         $ensure_enable = $ensure ? {
26                 present => true,
27                 absent  => false,
28         }
29
30         $ftpsite = $name
31
32         $fname = "/etc/vsftpd-${name}.conf"
33
34         file { $fname:
35                 ensure  => $ensure,
36                 content => template('vsftpd/vsftpd.conf.erb'),
37                 owner   => 'root',
38                 group   => 'root',
39                 mode    => '0444',
40         }
41
42         file { "/etc/logrotate.d/vsftpd-${name}":
43                 ensure => absent
44         }
45
46         file { "/etc/systemd/system/vsftpd-${name}@.service":
47                 ensure  => $ensure,
48                 content => template('vsftpd/systemd-vsftpd.service.erb'),
49                 owner   => 'root',
50                 group   => 'root',
51                 mode    => '0444',
52                 require => File[$fname],
53                 notify  => Exec['systemctl daemon-reload'],
54         }
55
56         file { "/etc/systemd/system/vsftpd-${name}.socket":
57                 ensure  => $ensure,
58                 content => template('vsftpd/systemd-vsftpd.socket.erb'),
59                 owner   => 'root',
60                 group   => 'root',
61                 mode    => '0444',
62                 notify  => [
63                         Exec['systemctl daemon-reload'],
64                         Service["vsftpd-${name}.socket"],
65                 ],
66         }
67
68         service { "vsftpd-${name}.socket":
69                 ensure   => $ensure_service,
70                 enable   => $ensure_enable,
71                 require  => [
72                         Exec['systemctl daemon-reload'],
73                         File["/etc/systemd/system/vsftpd-${name}@.service"],
74                         File["/etc/systemd/system/vsftpd-${name}.socket"],
75                 ],
76                 provider => systemd,
77         }
78
79         munin::check { "vsftpd-${name}":
80                 ensure => $ensure,
81                 script => 'vsftpd'
82         }
83         munin::conf { "vsftpd-${name}":
84                 ensure  => $ensure,
85                 content => template('vsftpd/munin.erb')
86         }
87 }