[Puppet Users] puppet 0.20.1 (debian etch) and recipe LDAPClientNSSwitch

Xavier Beaudouin
Mon, 02 Feb 2009 16:53:23 -0000

Hello,

Still trying to make auto configuration of my debian with nssldap and
puppet.

I have the following manifest :

---//---
# Puppet / Debian LDAP NSS Classe
#
# http://reductivelabs.com/trac/puppet/wiki/Recipes/LDAPClientNSSwitch
#
# Inspired of :p
class ldap-client {
  package { ldap-utils:
    ensure => installed
  }

  package { nscd:
    ensure => installed
  }

  service { nscd:
    ensure => running,
    require => Package["nscd"],
    provider => init;
  }

  package { openssh-server:
    ensure => installed
  }
  service { ssh:
    ensure => running,
    require => Package["openssh-server"],
    provider => init;
  }

  file { etc-ldap-dir:
    path => "/etc/ldap",
    ensure => directory,
    owner => root, group => root, mode => 755
  }

  file { ldap-conf:
    path => "/etc/ldap/ldap.conf",
    owner => root, group => root, mode => 444,
    source => "puppet://puppet/dist/ldap/ldap.conf",
    require => File[etc-ldap-dir]
  }

  file { libnss-ldap-preseed:
    path => "/var/cache/debconf/libnss-ldap.preseed",
    owner => root, group => root, mode => 400,
    source => "puppet://puppet/dist/ldap/libnss-ldap.preseed"
  }

  package { libnss-ldap:
    ensure => installed,
    require => File[libnss-ldap-preseed],
    responsefile => "/var/cache/debconf/libnss-ldap.preseed";
  }

  file { libnss-ldap-conf:
    path => "/etc/libnss-ldap.conf",
    mode => 444,
    require => Package[libnss-ldap],
    source => "puppet://puppet/dist/ldap/libnss-ldap.conf"
  }

  file { libnss-ldap-secret:
    path => "/etc/libnss-ldap.secret",
    mode => 400,
    require => Package[libnss-ldap],
    source => "puppet://puppet/dist/ldap/libnss-ldap.secret"
  }

  file { nscd-conf:
    path => "/etc/nscd.conf",
    owner => root, group => root, mode => 444,
    source => "puppet://puppet/dist/ldap/nscd.conf",
    notify => Service["nscd"];
  }

  file { libpam-ldap-preseed:
    path => "/var/cache/debconf/libpam-ldap.preseed",
    owner => root, group => root, mode => 400,
    source => "puppet://puppet/dist/ldap/libpam-ldap.preseed"
  }

  package { libpam-ldap:
    ensure => installed,
    responsefile => "/var/cache/debconf/libpam-ldap.preseed",
    require => File[libpam-ldap-preseed]
  }

  file { libpam-ldap-conf:
    path => "/etc/pam_ldap.conf",
    mode => 444,
    require => Package[libpam-ldap],
    source => "puppet://puppet/dist/ldap/pam_ldap.conf"
  }

  file { libpam-ldap-secret:
    path => "/etc/pam_ldap.secret",
    mode => 400,
    require => Package[libpam-ldap],
    source => "puppet://puppet/dist/ldap/pam_ldap.secret"
  }

  # configuration de pam pour ldap
  file { libpam-ldap-common-account:
    path => "/etc/pam.d/common-account",
    mode => 444,
    require => Package[libpam-ldap],
    source => "puppet://puppet/dist/ldap/common-account"
  }

  file { libpam-ldap-common-auth:
    path => "/etc/pam.d/common-auth",
    mode => 444,
    require => Package[libpam-ldap],
    source => "puppet://puppet/dist/ldap/common-auth"
  }

  file { libpam-ldap-common-password:
    path => "/etc/pam.d/common-password",
    mode => 444,
    require => Package[libpam-ldap],
    source => "puppet://puppet/dist/ldap/common-password"
  }

  file { libpam-ldap-common-session:
    path => "/etc/pam.d/common-session",
    mode => 444,
    require => Package[libpam-ldap],
    source => "puppet://puppet/dist/ldap/common-session"
  }

  # OpenSSH
  file { sshd-pam:
    path => "/etc/pam.d/ssh",
    mode => 444,
    source => "puppet://puppet/dist/ldap/ssh",
    notify => Service["ssh"];
  }

  file { nsswitch-conf:
    path => "/etc/nsswitch.conf",
    source => "puppet://puppet/dist/ldap/nsswitch.conf",
    notify => Service["nscd"];
  }
}

---//---


But when I try to test the client, I hve this kind of error :

~# puppetd --test
info: Caching configuration at /etc/puppet/localconfig.yaml
notice: Starting configuration run
err:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/package=libpam-ldap/ensure:
change from absent to present failed: Could not set present on ensure:
can''t
convert nil into String in file
/usr/local/etc/puppet/manifests/classes/ldap.pp at line 87
notice:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/file=/etc/pam_ldap.conf:
Dependency package[libpam-ldap] has 1 failures
warning:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/file=/etc/pam_ldap.conf:
Skipping because of failed dependencies
notice:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/file=/etc/pam.d/common-password:
Dependency package[libpam-ldap] has 1 failures
warning:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/file=/etc/pam.d/common-password:
Skipping because of failed dependencies
notice:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/file=/etc/pam.d/common-account:
Dependency package[libpam-ldap] has 1 failures
warning:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/file=/etc/pam.d/common-account:
Skipping because of failed dependencies
notice:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/file=/etc/pam.d/common-session:
Dependency package[libpam-ldap] has 1 failures
warning:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/file=/etc/pam.d/common-session:
Skipping because of failed dependencies
notice:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/file=/etc/pam_ldap.secret:
Dependency package[libpam-ldap] has 1 failures
warning:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/file=/etc/pam_ldap.secret:
Skipping because of failed dependencies
err:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/package=libnss-ldap/ensure:
change from absent to present failed: Could not set present on ensure:
can''t
convert nil into String in file
/usr/local/etc/puppet/manifests/classes/ldap.pp at line 54
notice:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/file=/etc/libnss-ldap.secret:
Dependency package[libnss-ldap] has 1 failures
warning:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/file=/etc/libnss-ldap.secret:
Skipping because of failed dependencies
notice:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/file=/etc/libnss-ldap.conf:
Dependency package[libnss-ldap] has 1 failures
warning:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/file=/etc/libnss-ldap.conf:
Skipping because of failed dependencies
notice:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/file=/etc/pam.d/common-auth:
Dependency package[libpam-ldap] has 1 failures
warning:
Class[main]/Node[virtual-nl3]/Class[ldap-client]/file=/etc/pam.d/common-auth:
Skipping because of failed dependencies
info:
Class[main]/Node[virtual-nl3]/Class[linuxbasics]/Class[resolvconf]/file=/etc/resolv.conf:
Removing old backup of type file
notice:
Class[main]/Node[virtual-nl3]/Class[linuxbasics]/Class[resolvconf]/file=/etc/resolv.conf/content:
synced
notice: Finished configuration run in 4.29 seconds

As I see the problems sees to be on :

  package { libnss-ldap:
    ensure => installed,
    require => File[libnss-ldap-preseed],
    responsefile => "/var/cache/debconf/libnss-ldap.preseed";
  }
and
  package { libpam-ldap:
    ensure => installed,
    responsefile => "/var/cache/debconf/libpam-ldap.preseed",
    require => File[libpam-ldap-preseed]
  }

I am running puppet client on a Debian Etch with the following :

ii  puppet
0.20.1-1                             centralised configuration management
for net


Any hints ?

/Xavier