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