]>
git.immae.eu Git - perso/Immae/Projets/Puppet.git/blob - modules/base_installation/lib/facter/ldapvar.rb
3 require 'puppet/util/ldap/connection'
5 Facter
.add("ldapvar") do
7 if Puppet
[:node_terminus].to_sym !
= :ldap
11 conn
= Puppet
::Util::Ldap::Connection.instance
13 connection
= conn
.connection
14 rescue ::LDAP::ResultError => e
15 raise Puppet
::ParseError, ("ldapquery(): LDAP ResultError - #{e.message}")
18 host
= Facter
.value('ec2_metadata')["hostname"]
19 base
= Puppet
[:ldapbase]
20 scope
= ::LDAP::LDAP_SCOPE_SUBTREE
21 filter
= "(objectclass=*)"
28 connection
.search(base
, scope
, filter
) do |entry
|
30 if data_
["objectClass"].any
? { |class_
| class_
== "puppetClient" }
31 data_
['vars'] = (data_
[Puppet
[:ldapstackedattrs]] || [])
32 .map
{ |var
| var
.split("=", 2) }
33 .group_by
{ |(key
, value
)| key
}
34 .map
{ |key
, value
| [key
, value
.map(&:last)] }
39 if data_
["cn"].any
? { |cn
| cn
== host
}