Possibility to specify custom principal for statistics. Always create environment...
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Sat, 17 Jan 2015 15:26:57 +0000 (16:26 +0100)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Sat, 17 Jan 2015 16:10:11 +0000 (17:10 +0100)
manifests/accounting.pp
manifests/init.pp
templates/accounting/hadoop-accounting.erb
templates/accounting/hdfs.sh.erb

index 0b9d897..c1ec1e2 100644 (file)
@@ -9,12 +9,12 @@
 #    include stdlib
 #    
 #    class{'site_hadoop':
-#      db_password => 'accpass',
-#      email       => 'mail@example.com',
 #      stage       => 'setup',
 #    }
 #    
 #    class{'site_hadoop::accountig':
+#      db_password => 'accpass',
+#      email       => 'mail@example.com',
 #      hdfs        => '0,30 * * *',
 #    }
 #    
 #
 # === Parameters
 #
+# ####`db_name`
+# = undef (system default is *accounting*)
+#
+# Database name for statistics.
+#
+# ####`db_user`
+# = undef (system default is *accounting*)
+#
+# Database user for statistics.
+#
+# ####`db_password`
+# = undef
+#
+# Database password for statistics.
+#
+# ####`email`
+# = undef
+#
+# Email address to send errors from cron.
+#
 # [*hdfs*] undef
 #
 # Enable storing global HDFS disk and data statistics. The value is time in the cron format. See *man 5 crontab*.
 #
+# ####`principal`
+# = undef
+#
+# Kerberos principal to access Hadoop.
+#
 class site_hadoop::accounting(
+  $db_name = undef,
+  $db_user = undef,
+  $db_password = undef,
+  $email = undef,
   $hdfs  = undef,
+  $principal = undef,
 ) {
   file {'/usr/local/bin/accounting-hdfs':
     owner  => 'root',
@@ -66,23 +96,13 @@ class site_hadoop::accounting(
     source => 'puppet:///modules/site_hadoop/accounting/create.sql',
   }
 
-  $db_name = $site_hadoop::db_name
-  $db_user = $site_hadoop::db_user
-  $db_password = $site_hadoop::db_password
-  if $db_name or $db_user or $db_password {
-    file{"${site_hadoop::defaultconfdir}/hadoop-accounting":
-      owner  => 'hdfs',
-      group  => 'hdfs',
-      mode   => '0400',
-      content => template('site_hadoop/accounting/hadoop-accounting.erb'),
-    }
-  } else {
-    file{"${site_hadoop::defaultconfdir}/hadoop-accounting":
-      ensure => 'absent',
-    }
+  file{"${site_hadoop::defaultconfdir}/hadoop-accounting":
+    owner  => 'hdfs',
+    group  => 'hdfs',
+    mode   => '0400',
+    content => template('site_hadoop/accounting/hadoop-accounting.erb'),
   }
 
-  $email = $site_hadoop::email
   if $hdfs {
     file{'/etc/cron.d/accounting-hdfs':
       owner => 'root',
index 41b9cea..cae77ac 100644 (file)
@@ -4,21 +4,6 @@
 #
 # ##Parameters
 #
-# ####`db_name`
-# = undef (system default is *accounting*)
-#
-# Database name for statistics.
-#
-# ####`db_user`
-# = undef (system default is *accounting*)
-#
-# Database user for statistics.
-#
-# ####`db_password`
-# = undef
-#
-# Database password for statistics.
-#
 # ####`email` = undef
 # = undef
 #
 # * **cloudera**
 # * **scientific**
 #
+# Kerberos realm to use. It needs to be specified, when security is enabled.
+#
 class site_hadoop (
-  $db_name = undef,
-  $db_user = undef,
-  $db_password = undef,
   $email = undef,
   $mirror = $site_hadoop::params::mirror,
 ) inherits site_hadoop::params {
index 314e728..9b729af 100644 (file)
@@ -7,3 +7,6 @@ MYSQL_USER='<%= @db_user -%>'
 <% if @db_password -%>
 MYSQL_PASSWORD='<%= @db_password -%>'
 <% end -%>
+<% if @principal != nil -%>
+PRINCIPAL='<%= @principal -%>'
+<% end -%>
index 7739754..a50c78c 100755 (executable)
@@ -6,7 +6,7 @@ export KRB5CCNAME='FILE:/tmp/krb5cc_hdfs_stat'
 KEYTAB='FILE:/etc/security/keytab/nn.service.keytab'
 PRINCIPAL="nn/`hostname -f`"
 MYSQL_DB='accounting'
-MYSQL_USER='root'
+MYSQL_USER='accounting'
 MYSQL_PASSWORD=''
 
 if test -f ${DEFAULTDIR}/hadoop-accounting; then