Separate main class and components. Fix Debian.
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Wed, 7 Jan 2015 23:33:00 +0000 (00:33 +0100)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Wed, 7 Jan 2015 23:33:53 +0000 (00:33 +0100)
manifests/kdc.pp
manifests/kdc/client.pp [new file with mode: 0644]
manifests/kdc/config.pp [deleted file]
manifests/kdc/install.pp [deleted file]
manifests/kdc/params.pp
manifests/kdc/server.pp [new file with mode: 0644]
manifests/kdc/service.pp [deleted file]
templates/kdc.conf.erb

index dce3cfe..bf43922 100644 (file)
@@ -1,13 +1,9 @@
 class site_hadoop::kdc (
   $realm = $site_hadoop::kdc::params::realm,
   $master_password = $site_hadoop::kdc::params::master_password,
+  $perform = undef,
 ) inherits site_hadoop::kdc::params {
-
-  include site_hadoop::kdc::install
-  include site_hadoop::kdc::config
-  include site_hadoop::kdc::service
-
-  Class['site_hadoop::kdc::install'] ->
-  Class['site_hadoop::kdc::config'] ~>
-  Class['site_hadoop::kdc::service']
+  if $site_hadoop::kdc::perform {
+    include site_hadoop::kdc::server
+  }
 }
diff --git a/manifests/kdc/client.pp b/manifests/kdc/client.pp
new file mode 100644 (file)
index 0000000..045b681
--- /dev/null
@@ -0,0 +1,12 @@
+class site_hadoop::kdc::client {
+  $realm = $site_hadoop::kdc::realm
+  $domain = $site_hadoop::kdc::domain
+  $kdcserver = $site_hadoop::kdc::kdcserver
+
+  #ensure_packages($site_hadoop::kdc::packages['client'])
+
+  file { '/etc/krb5.conf':
+    mode    => '0644',
+    content => template('site_hadoop/krb5.conf.erb'),
+  }
+}
diff --git a/manifests/kdc/config.pp b/manifests/kdc/config.pp
deleted file mode 100644 (file)
index 5f8c979..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-class site_hadoop::kdc::config {
-  $realm = $site_hadoop::kdc::realm
-  $domain = $site_hadoop::kdc::domain
-  $kdcserver = $site_hadoop::kdc::kdcserver
-
-  file { '/etc/krb5.conf':
-    mode    => '0644',
-    content => template('site_hadoop/krb5.conf.erb'),
-  }
-
-  file { "${site_hadoop::kdc::kdc_dir}/kdc.conf":
-    mode    => '0600',
-    content => template('site_hadoop/kdc.conf.erb'),
-  }
-
-  exec { 'kdb5_util-create':
-    command => "kdb5_util create -s -P ${site_hadoop::kdc::master_password}",
-    path    => '/sbin:/usr/sbin:/bin:/usr/bin',
-    # reading /dev/random
-    timeout => 0,
-    creates => "${site_hadoop::kdc::kdc_dir}/principal",
-  }
-  File['/etc/krb5.conf'] -> Exec['kdb5_util-create']
-  File["${site_hadoop::kdc::kdc_dir}/kdc.conf"] -> Exec['kdb5_util-create']
-}
diff --git a/manifests/kdc/install.pp b/manifests/kdc/install.pp
deleted file mode 100644 (file)
index aabbbbf..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-class site_hadoop::kdc::install {
-  if $site_hadoop::kdc::kdc_packages {
-    ensure_packages($site_hadoop::kdc::kdc_packages)
-  }
-}
index c4631ea..c1e3d6e 100644 (file)
@@ -5,23 +5,31 @@ class site_hadoop::kdc::params {
         'kadmin' => 'krb5-admin-server',
         'kdc' => 'krb5-kdc',
       }
+      $packages = {
+        'server' => ['krb5-kdc', 'krb5-admin-server'],
+        #'client' => ['krb5-user'],
+      }
     }
     'RedHat': {
       $daemons = {
         'kadmin' => 'kadmin',
         'kdc' => 'krb5kdc',
       }
+      $packages = {
+        'server' => ['krb5-server'],
+        #'client' => ['krb5-workstation'],
+      }
     }
   }
 
-  $kdc_dir = $::osfamily ? {
-    debian => '/var/lib/krb5kdc',
+  $kdc_conf_dir = $::osfamily ? {
+    debian => '/etc/krb5kdc',
     redhat => '/var/kerberos/krb5kdc',
   }
 
-  $kdc_packages = $::osfamily ? {
-    debian => ['krb5-kdc', 'krb5-admin-server'],
-    redhat => ['krb5-server', 'krb5-workstation'],
+  $kdc_data_dir = $::osfamily ? {
+    debian => '/var/lib/krb5kdc',
+    redhat => '/var/kerberos/krb5kdc',
   }
 
   $realm = 'HADOOP'
diff --git a/manifests/kdc/server.pp b/manifests/kdc/server.pp
new file mode 100644 (file)
index 0000000..f4333d8
--- /dev/null
@@ -0,0 +1,44 @@
+class site_hadoop::kdc::server {
+  include stdlib
+  include site_hadoop::kdc::client
+
+  ensure_packages($site_hadoop::kdc::packages['server'])
+
+  $realm = $site_hadoop::kdc::realm
+  $domain = $site_hadoop::kdc::domain
+  $kdcserver = $site_hadoop::kdc::kdcserver
+  $kdcconf = "${site_hadoop::kdc::kdc_conf_dir}/kdc.conf"
+
+  file { $kdcconf:
+    mode    => '0600',
+    content => template('site_hadoop/kdc.conf.erb'),
+    require => Package[$site_hadoop::kdc::packages['server']],
+  }
+
+  exec { 'kdb5_util-create':
+    command => "kdb5_util create -s -P ${site_hadoop::kdc::master_password}",
+    path    => '/sbin:/usr/sbin:/bin:/usr/bin',
+    # reading /dev/random
+    timeout => 0,
+    creates => "${site_hadoop::kdc::kdc_data_dir}/principal",
+    require => Package[$site_hadoop::kdc::packages['server']],
+  }
+
+  service{$site_hadoop::kdc::daemons['kadmin']:
+    ensure => running,
+  }
+  service{$site_hadoop::kdc::daemons['kdc']:
+    ensure => running,
+  }
+
+  File['/etc/krb5.conf'] -> Exec['kdb5_util-create']
+  File['/etc/krb5.conf'] ~> Service[$site_hadoop::kdc::daemons['kadmin']]
+  File['/etc/krb5.conf'] ~> Service[$site_hadoop::kdc::daemons['kdc']]
+
+  File[$kdcconf] -> Exec['kdb5_util-create']
+  File[$kdcconf] ~> Service[$site_hadoop::kdc::daemons['kadmin']]
+  File[$kdcconf] ~> Service[$site_hadoop::kdc::daemons['kdc']]
+
+  Exec['kdb5_util-create'] -> Service[$site_hadoop::kdc::daemons['kadmin']]
+  Exec['kdb5_util-create'] -> Service[$site_hadoop::kdc::daemons['kdc']]
+}
diff --git a/manifests/kdc/service.pp b/manifests/kdc/service.pp
deleted file mode 100644 (file)
index 1c700f7..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-class site_hadoop::kdc::service {
-  service{$site_hadoop::kdc::daemons['kadmin']:
-    ensure => running,
-  }
-  service{$site_hadoop::kdc::daemons['kdc']:
-    ensure => running,
-  }
-}
index 19aa204..44ae1e9 100644 (file)
@@ -1,4 +1,4 @@
-<% if scope.lookupvar('::osfamily') == 'debian' -%>
+<% if scope.lookupvar('::osfamily') == 'Debian' -%>
 [kdcdefaults]
     kdc_ports = 750,88
 
@@ -15,7 +15,7 @@
         supported_enctypes = aes256-cts:normal arcfour-hmac:normal des3-hmac-sha1:normal des-cbc-crc:normal des:normal des:v4 des:norealm des:onlyrealm des:afs3
         default_principal_flags = +preauth
     }
-<% elsif scope.lookupvar('::osfamily') == 'redhat' -%>
+<% elsif scope.lookupvar('::osfamily') == 'RedHat' -%>
 [kdcdefaults]
  kdc_ports = 88
  kdc_tcp_ports = 88