Puppet Class: btsync::system

Defined in:
manifests/system.pp

Overview

Parameters:

  • listening_port (Any) (defaults to: 0)
  • storage_path (Any) (defaults to: '/var/lib/btsync/system')
  • user (Any) (defaults to: 'btsync')
  • group (Any) (defaults to: 'btsync')
  • umask (Any) (defaults to: '0002')
  • use_upnp (Any) (defaults to: true)
  • download_limit (Any) (defaults to: 0)
  • upload_limit (Any) (defaults to: 0)
  • proxy (Any) (defaults to: false)
  • proxy_type (Any) (defaults to: 'socks4')
  • proxy_addr (Any) (defaults to: '127.0.0.1')
  • proxy_port (Any) (defaults to: '8080')
  • proxy_username (Any) (defaults to: '')
  • proxy_password (Any) (defaults to: '')
  • webui_listen (Any) (defaults to: '127.0.0.1:8888')
  • login (Any) (defaults to: undef)
  • password (Any) (defaults to: undef)
  • directory_root (Any) (defaults to: '/')


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
# File 'manifests/system.pp', line 1

class btsync::system(
  $listening_port = 0,
  $storage_path = '/var/lib/btsync/system',
  $user = 'btsync',
  $group = 'btsync',
  $umask = '0002',
  $use_upnp = true,
  $download_limit = 0,
  $upload_limit = 0,
  $proxy = false,
  $proxy_type = 'socks4',
  $proxy_addr = '127.0.0.1',
  $proxy_port = '8080',
  $proxy_username = '',
  $proxy_password = '',
  $webui_listen = '127.0.0.1:8888',
  $login = undef,
  $password = undef,
  $directory_root = '/',) {
  contain btsync

  Exec {
    path => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin'
  }

  validate_absolute_path($storage_path)
  validate_bool($use_upnp)
  validate_re($listening_port, '\d+')
  validate_re($download_limit, '\d+')
  validate_re($upload_limit, '\d+')
  validate_re($umask, '\d{4}')
  validate_absolute_path($directory_root)


  service { 'btsync':
    ensure  => running,
    enable  => true,
    require => Exec['systemd-daemon-reload'],
  }

  file { '/etc/systemd/system/btsync.service.d':
    ensure => directory,
  }

  file { '/etc/systemd/system/btsync.service.d/user.conf':
    ensure  => present,
    content => template('btsync/system-service.d.conf.erb'),
    notify  => [ Service['btsync'], Exec['systemd-daemon-reload'] ],
  }

  file { '/etc/btsync.conf':
    owner   => $user,
    group   => $group,
    mode    => '0644',
    notify  => Service['btsync'],
    content => template('btsync/system-btsync.conf.erb'),
  }

  file { $storage_path:
    ensure  => directory,
    owner   => $user,
    group   => $group,
    mode    => '2775',
    notify  => [ Service['btsync'], Exec['fix-btsync-storage-permissions'] ],
  }

  exec { 'fix-btsync-storage-permissions':
    path        => $::path,
    command     => "chown -R ${user}:${group} '${storage_path}'",
    refreshonly => true,
  }

  file { "${storage_path}/sync.log":
    ensure  => file,
    owner   => $user,
    group   => $group,
    mode    => '0664',
  }

  exec { 'sync permissions':
    command => "setfacl -d -m g::rwx '${storage_path}'",
    unless  => "getfacl '${storage_path}' | grep default",
    require => File[$storage_path],
  }

}