aboutsummaryrefslogtreecommitdiff
path: root/manifests/role/web.pp
blob: 87401e0165dc7fd6c1b01bded6f8c80425e06178 (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
class nodo::role::web inherits nodo::base::virtual {
  # Hidden services
  $hidden = hiera('apache::site::hidden', false)
  if $hidden == true {
    include onion
  }

  # Munin
  $munin = hiera('nodo::munin_node::manage', True)
  if $munin == true {
    munin::plugin { [ 'apache_accesses', 'apache_processes', 'apache_volume' ]:
      ensure => present,
    }

    package { 'libcache-cache-perl':  # needed by munin mysql plugin
      ensure => present,
    }

    munin::plugin { [ 'mysql_queries', 'mysql_slowqueries', 'mysql_bytes', 'mysql_threads' ]:
      ensure => present,
      config => "user root\nenv.mysqlopts --defaults-extra-file=/etc/mysql/debian.cnf",
    }
  }

  # Classes for web nodes
  include database
  include nodo::utils::web

  # Put your custom sites and users here
  include websites
  require ::site_users::virtual

  # Reprepro configuration
  $reprepro         = hiera('nodo::web::reprepro', false)
  $reprepro_basedir = '/var/reprepro'

  case $reprepro {
    true,'enabled': {
      class { 'reprepro':
        basedir   => '/var/reprepro',
        uploaders => hiera('nodo::web::reprepro_uploaders', [ ]),
      }

      include reprepro::cron
    }
    'disabled': {
      class { 'reprepro::disabled':
        basedir => '/var/reprepro',
      }
    }
    'purged': {
      class { 'reprepro::purged':
        basedir => '/var/reprepro',
      }
    }
    false,default: { }
  }

  $git_daemon = hiera('nodo::web::git_daemon', True)

  if $git_daemon != false {
    class { 'git::daemon': }
  }

  backupninja::svn { "svn":
    src => "/var/svn",
  }
}