summaryrefslogtreecommitdiff
path: root/manifests/master/dashboard.pp
blob: 16d796e88d0e450215c49152f05d141e07a3d5ba (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
class puppet::master::dashboard(
  $settings       = {},
  $service        = true,
  $mysql_password,
) {

  package{'puppet-dashboard':
    ensure => installed,
  } -> mysql::default_database{
    'dashboard':
      password => $mysql_password;
  } -> file{
    '/usr/share/puppet-dashboard/config/database.yaml':
      content => template('puppet/master/dashboard/database.yaml.erb'),
      owner   => 'puppet-dashboard',
      group   => 'puppet-dashboard',
      mode    => '0640';
    '/usr/share/puppet-dashboard/config/settings.yaml':
      content => template('puppet/master/dashboard/settings.yaml.erb'),
      owner   => 'puppet-dashboard',
      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;
  }

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