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

  # Munin
  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.mysqluser debian-sys-maint\nenv.mysqlconnection DBI:mysql:mysql;mysql_read_default_file=/etc/mysql/debian.cnf",
  }

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

  # The websites class
  require websites

  # 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",
  }
}