482589787a3300d546e46febcc29753832f63b68
[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         $fname = "/etc/vsftpd-${name}.conf"
31
32         file { $fname:
33                 ensure  => $ensure,
34                 content => template('vsftpd/vsftpd.conf.erb'),
35                 owner   => 'root',
36                 group   => 'root',
37                 mode    => '0444',
38         }
39
40         file { "/etc/logrotate.d/vsftpd-${name}":
41                 ensure => absent
42         }
43
44         file { "/etc/systemd/system/vsftpd-${name}@.service":
45                 ensure  => $ensure,
46                 content => template('vsftpd/systemd-vsftpd.service.erb'),
47                 owner   => 'root',
48                 group   => 'root',
49                 mode    => '0444',
50                 require => File[$fname],
51                 notify  => Exec['systemctl daemon-reload'],
52         }
53
54         file { "/etc/systemd/system/vsftpd-${name}.socket":
55                 ensure  => $ensure,
56                 content => template('vsftpd/systemd-vsftpd.socket.erb'),
57                 owner   => 'root',
58                 group   => 'root',
59                 mode    => '0444',
60                 notify  => [
61                         Exec['systemctl daemon-reload'],
62                         Service["vsftpd-${name}.socket"],
63                 ],
64         }
65
66         service { "vsftpd-${name}.socket":
67                 ensure   => $ensure_service,
68                 enable   => $ensure_enable,
69                 require  => [
70                         Exec['systemctl daemon-reload'],
71                         File["/etc/systemd/system/vsftpd-${name}@.service"],
72                         File["/etc/systemd/system/vsftpd-${name}.socket"],
73                 ],
74                 provider => systemd,
75         }
76
77         xinetd::service { [ "vsftpd-${name}", "vsftpd-${name}6", "vsftpd-${name}-v6" ]:
78                 ensure  => absent,
79                 id      => 'unused',
80                 server  => 'unused',
81                 service => 'unused',
82                 ferm    => false,
83                 before  => Service["vsftpd-${name}.socket"],
84         }
85
86         munin::check { "vsftpd-${name}":
87                 ensure => $ensure,
88                 script => 'vsftpd'
89         }
90         munin::conf { "vsftpd-${name}":
91                 ensure  => $ensure,
92                 content => template('vsftpd/munin.erb')
93         }
94 }