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