aboutsummaryrefslogtreecommitdiff
path: root/manifests/init.pp
blob: 4cab9dd1cdee5435bfc4d7382bb08cdd2ea63ec5 (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
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
143
144
145
146
147
class pyroscope(
  $password = hiera('pyroscope::password', '')
) {
  case $password {
    '': { fail("You need to define torrent user password! Please set pyroscope::password in your config") }
  }

  user::manage { "torrent":
    password => $password,
    homedir  => '/var/cache/torrent',
    ensure   => present,
    groups   => [ 'incoming' ],
  }

  file { '/var/cache/media/seeding':
    ensure  => directory,
    owner   => torrent,
    group   => torrent,
    mode    => 0755,
    require => [ File['/var/cache/media'], User['torrent'] ],
  }

  file { '/var/cache/torrent/.profile':
    ensure  => present,
    owner   => torrent,
    group   => torrent,
    mode    => 0644,
    source  => 'puppet:///modules/pyroscope/profile.sh',
    require => User['torrent'],
  }

  file { '/var/cache/torrent/.bashrc':
    ensure  => present,
    owner   => torrent,
    group   => torrent,
    mode    => 0644,
    source  => 'puppet:///modules/pyroscope/bashrc.sh',
    require => User['torrent'],
  }

  file { '/var/cache/torrent/rtorrent':
    ensure  => directory,
    owner   => torrent,
    group   => torrent,
    mode    => 0755,
    require => User['torrent'],
  }

  file { '/var/cache/torrent/rtorrent/done':
    ensure  => '/var/cache/media/incoming',
    owner   => torrent,
    group   => torrent,
    require => File['/var/cache/torrent/rtorrent'],
  }

  file { '/var/cache/torrent/rtorrent/seeding':
    ensure  => '/var/cache/media/seeding',
    owner   => torrent,
    group   => torrent,
    require => File['/var/cache/torrent/rtorrent'],
  }

  file { [ '/var/cache/torrent/rtorrent/log', '/var/cache/torrent/rtorrent/.session' ]:
    ensure  => directory,
    owner   => torrent,
    group   => torrent,
    mode    => 0755,
    require => File['/var/cache/torrent/rtorrent'],
  }

  file { '/var/cache/torrent/rtorrent/rtorrent.rc':
    ensure  => present,
    owner   => torrent,
    group   => torrent,
    mode    => 0644,
    source  => 'puppet:///modules/pyroscope/rtorrent.rc',
    require => File['/var/cache/torrent/rtorrent'],
  }

  file { '/var/cache/torrent/rtorrent/start':
    ensure  => present,
    owner   => torrent,
    group   => torrent,
    mode    => 0755,
    source  => 'puppet:///modules/pyroscope/start.sh',
    require => File['/var/cache/torrent/rtorrent'],
  }

  file { '/var/cache/torrent/.pyroscope':
    ensure  => directory,
    owner   => torrent,
    group   => torrent,
    mode    => 0755,
    require => User['torrent'],
  }

  file { '/var/cache/torrent/.pyroscope/run':
    ensure  => directory,
    owner   => torrent,
    group   => torrent,
    mode    => 0755,
    require => File['/var/cache/torrent/.pyroscope'],
  }

  file { '/var/cache/torrent/.pyroscope/run/pyrotorque':
    ensure  => present,
    owner   => torrent,
    group   => torrent,
    mode    => 0644,
    require => File['/var/cache/torrent/.pyroscope/run'],
  }

  file { '/var/cache/torrent/.pyroscope/torque.ini':
    ensure  => present,
    owner   => torrent,
    group   => torrent,
    mode    => 0644,
    source  => 'puppet:///modules/pyroscope/torque.ini',
    require => File['/var/cache/torrent/.pyroscope'],
  }

  file { '/var/cache/torrent/bin':
    ensure  => directory,
    owner   => torrent,
    group   => torrent,
    mode    => 0755,
    require => User['torrent'],
  }

  file { '/var/cache/torrent/bin/rtcron':
    ensure  => present,
    owner   => torrent,
    group   => torrent,
    mode    => 0755,
    source  => 'puppet:///modules/pyroscope/rtcron.sh',
    require => File['/var/cache/torrent/bin'],
  }

  cron { "rtcron":
    command  => '/var/cache/torrent/bin/rtcron &> /var/cache/torrent/rtorrent/log/rtcron.log',
    user     => torrent,
    hour     => "*",
    minute   => "*",
    ensure   => present,
    require  => File['/var/cache/torrent/bin/rtcron'],
  }
}