summaryrefslogtreecommitdiff
path: root/manifests/master/dashboard.pp
blob: e3d56b5f8bab8e0f10c396ef5bc5b420e9b02c28 (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
# simple installation of a puppet dashboard
class puppet::master::dashboard(
  $settings       = {},
  $service        = true,
  $mysql_host     = '127.0.0.1',
  $mysql_password,
) {

  package{'puppet-dashboard':
    ensure => installed,
  }

  if $mysql_host == '127.0.0.1' {
    mysql::default_database{
      'dashboard':
        password  => mysql_password($mysql_password),
        host      => '127.0.0.1',
        require   => Package['puppet-dashboard'],
        before    => File['/usr/share/puppet-dashboard/config/database.yml'],
    }
  }

  file{
    '/usr/share/puppet-dashboard/config/database.yml':
      content => template('puppet/master/dashboard/database.yml.erb'),
      owner   => root,
      group   => 'puppet-dashboard',
      mode    => '0640',
      require => Package['puppet-dashboard'];
    '/usr/share/puppet-dashboard/config/settings.yml':
      content => template('puppet/master/dashboard/settings.yml.erb'),
      owner   => root,
      group   => 'puppet-dashboard',
      mode    => '0640';
  } ~> exec{
    'rake RAILS_ENV=production db:migrate':
      cwd         => '/usr/share/puppet-dashboard',
      user        => 'puppet-dashboard',
      refreshonly => true;
  } -> service{
    'puppet-dashboard-workers':
      ensure  => running,
      enable  => true;
  }

  file{'/etc/cron.daily/puppet-dashboard_cleanup':
    content   => "#/bin/bash
cd /usr/share/puppet-dashboard
RAILS_ENV=production /usr/bin/rake reports:prune upto=1 unit=mon >> /usr/share/puppet-dashboard/log/cron.log
RAILS_ENV=production /usr/bin/rake reports:prune:orphaned >> /usr/share/puppet-dashboard/log/cron.log
RAILS_ENV=production /usr/bin/rake db:raw:optimize >> /usr/share/puppet-dashboard/log/cron.log\n",
      owner   => 'puppet-dashboard',
      group   => 'puppet-dashboard',
      mode    => '0755',
      require => Service['puppet-dashboard-workers'];
  }

  service{'puppet-dashboard': }
  if $service {
    Service['puppet-dashboard']{
      ensure    => running,
      enable    => true,
      subscribe => File['/usr/share/puppet-dashboard/config/database.yml','/usr/share/puppet-dashboard/config/settings.yml'],
    }
  } else {
    Service['puppet-dashboard']{
      ensure  => stopped,
      enable  => false,
    }
  }
}