summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormh <mh@immerda.ch>2013-05-20 21:56:53 +0200
committermh <mh@immerda.ch>2013-05-20 21:56:53 +0200
commitd2852466f2961f9af46057f9410b5d96457337f8 (patch)
tree3a8b7b9ff80297116e75e8e3b9d7974510f4c53a
parent4fabfbd53cfb7c35cf7ad9ff03b6b38d4daed7b4 (diff)
add a simple dashboard setup
-rw-r--r--manifests/master/dashboard.pp47
-rw-r--r--templates/master/dashboard/database.yml.erb8
-rw-r--r--templates/master/dashboard/settings.yml.erb90
3 files changed, 145 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,
+ }
+ }
+}
diff --git a/templates/master/dashboard/database.yml.erb b/templates/master/dashboard/database.yml.erb
new file mode 100644
index 0000000..df7a376
--- /dev/null
+++ b/templates/master/dashboard/database.yml.erb
@@ -0,0 +1,8 @@
+production:
+ adapter: mysql
+ database: 'dashboard',
+ host: 'localhost'
+ username: 'dashboard'
+ password: '<%= mysql_password %>'
+ encoding: utf8
+
diff --git a/templates/master/dashboard/settings.yml.erb b/templates/master/dashboard/settings.yml.erb
new file mode 100644
index 0000000..24f82a2
--- /dev/null
+++ b/templates/master/dashboard/settings.yml.erb
@@ -0,0 +1,90 @@
+#===[ Settings ]=========================================================
+#
+# This file is meant for storing setting information that is never
+# published or committed to a revision control system.
+#
+# Do not modify this "config/settings.yml.example" file directly -- you
+# should copy it to "config/settings.yml" and customize it there.
+#
+#---[ Values ]----------------------------------------------------------
+
+# Node name to use when contacting the puppet master. This is the
+# CN that is used in Dashboard's certificate.
+cn_name: 'dashboard'
+
+ca_crl_path: 'certs/dashboard.ca_crl.pem'
+
+ca_certificate_path: 'certs/dashboard.ca_cert.pem'
+
+certificate_path: 'certs/dashboard.cert.pem'
+
+private_key_path: 'certs/dashboard.private_key.pem'
+
+public_key_path: 'certs/dashboard.public_key.pem'
+
+# Hostname of the certificate authority.
+ca_server: 'puppet'
+
+# Port for the certificate authority.
+ca_port: 8140
+
+# Key length for SSL certificates
+key_length: 1024
+
+# The "inventory service" allows you to connect to a puppet master to retrieve and node facts
+enable_inventory_service: false
+
+# Hostname of the inventory server.
+inventory_server: 'puppet'
+
+# Port for the inventory server.
+inventory_port: 8140
+
+# Set this to true to allow Dashboard to display diffs on files that
+# are archived in the file bucket.
+use_file_bucket_diffs: false
+
+# Hostname of the file bucket server.
+file_bucket_server: 'puppet'
+
+# Port for the file bucket server.
+file_bucket_port: 8140
+
+# Amount of time in seconds since last report before a node is considered no longer reporting
+no_longer_reporting_cutoff: 3600
+
+# How many days of history to display on the "Daily Run Status" graph
+daily_run_history_length: 30
+
+use_external_node_classification: true
+
+# Uncomment the following line to set a local time zone. Run
+# "rake time:zones:local" for the name of your local time zone.
+#time_zone: 'Pacific Time (US & Canada)'
+
+# Look at http://ruby-doc.org/core/classes/Time.html#M000298 for the strftime formatting
+datetime_format: '%Y-%m-%d %H:%M %Z'
+date_format: '%A, %B %e, %Y'
+
+# Set this to the URL of an image. The image will be scaled to the specified dimensions.
+custom_logo_url: '/images/dashboard_logo.png'
+custom_logo_width: 155px
+custom_logo_height: 23px
+custom_logo_alt_text: 'Puppet Dashboard'
+
+# We will be deprecating using "http://dashboard_servername/reports" as the puppet master's reporturl.
+# Set this to 'true' once you have changed all your puppet masters to send reports to
+# "http://dashboard_servername/reports/upload"
+disable_legacy_report_upload_url: false
+
+# Disables the UI and controller actions for editing nodes, classes, groups and reports. Report submission is still allowed
+enable_read_only_mode: <%= settings['enable_read_only_mode'] || false %>
+
+# Default number of items of each kind to display per page
+nodes_per_page: 20
+classes_per_page: 50
+groups_per_page: 50
+reports_per_page: 20
+
+#===[ fin ]=============================================================
+