summaryrefslogtreecommitdiff
path: root/manifests/master/dashboard.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/master/dashboard.pp')
-rw-r--r--manifests/master/dashboard.pp47
1 files changed, 47 insertions, 0 deletions
diff --git a/manifests/master/dashboard.pp b/manifests/master/dashboard.pp
new file mode 100644
index 0000000..16d796e
--- /dev/null
+++ b/manifests/master/dashboard.pp
@@ -0,0 +1,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,
+ }
+ }
+}