ソースを参照

Ensure server and utils are installed

DarkMorford 6 年 前
コミット
effed6fcb8
4 ファイル変更36 行追加2 行削除
  1. 1 0
      data/common.yaml
  2. 1 0
      files/slapd.preseed
  3. 27 2
      manifests/server.pp
  4. 7 0
      spec/classes/server_spec.rb

+ 1 - 0
data/common.yaml

@@ -1 +1,2 @@
 ---
+openldap::server::provider: 'olc'

+ 1 - 0
files/slapd.preseed

@@ -0,0 +1 @@
+slapd	slapd/domain	string	example.com

+ 27 - 2
manifests/server.pp

@@ -5,10 +5,35 @@
 # @example
 #   include openldap::server
 class openldap::server (
-  String $server_package
+  String                $owner,
+  String                $group,
+  String                $server_package,
+  String                $utils_package,
+  Enum['olc', 'augeas'] $provider
 )
 {
+  if $::osfamily == 'Debian' {
+    $answerfile = '/var/cache/debconf/slapd.preseed'
+    file { $answerfile:
+      ensure => file,
+      mode   => '0644',
+      owner  => 'root',
+      group  => 'root',
+      source => 'puppet:///modules/darkmorford-openldap/slapd.preseed',
+      before => Package[$server_package]
+    }
+  } else {
+    $answerfile = undef
+  }
+
+  if $provider == 'olc' {
+    package { $utils_package:
+      ensure => installed
+    }
+  }
+
   package { $server_package:
-    ensure => installed
+    ensure       => installed,
+    responsefile => $answerfile
   }
 }

+ 7 - 0
spec/classes/server_spec.rb

@@ -11,6 +11,13 @@ describe 'openldap::server' do
       when 'Debian'
         it do
           is_expected.to contain_package('slapd').with_ensure('installed')
+          is_expected.to contain_package('ldap-utils').with_ensure('installed')
+          is_expected.to contain_file('/var/cache/debconf/slapd.preseed').with(
+            'ensure' => 'file',
+            'owner'  => 'root',
+            'group'  => 'root',
+            'mode'   => '0644',
+          )
         end
       end
     end