From 248bd83ed797f6e0f385e72a56aa7bafdf23d490 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Sun, 17 Sep 2017 19:05:41 +0200 Subject: Enhance install script, and add ip6 address --- modules/base_installation/lib/facter/ldapvar.rb | 83 +++++++++++++------------ 1 file changed, 43 insertions(+), 40 deletions(-) (limited to 'modules/base_installation/lib/facter/ldapvar.rb') diff --git a/modules/base_installation/lib/facter/ldapvar.rb b/modules/base_installation/lib/facter/ldapvar.rb index ff8e898..3ee6623 100644 --- a/modules/base_installation/lib/facter/ldapvar.rb +++ b/modules/base_installation/lib/facter/ldapvar.rb @@ -1,46 +1,49 @@ -require 'ldap' -require 'puppet/util/ldap/connection' - -Facter.add("ldapvar") do - setcode do - if Puppet[:node_terminus].to_sym != :ldap - data = [] - else - begin - conn = Puppet::Util::Ldap::Connection.instance - conn.start - connection = conn.connection - rescue ::LDAP::ResultError => e - raise Puppet::ParseError, ("ldapquery(): LDAP ResultError - #{e.message}") - end - - host = Facter.value('ec2_metadata')["hostname"] - base = Puppet[:ldapbase] - scope = ::LDAP::LDAP_SCOPE_SUBTREE - filter = "(objectclass=*)" - - data = { - :self => {}, - :other => [], - } - - connection.search(base, scope, filter) do |entry| - data_ = entry.to_hash - data_['vars'] = (data_[Puppet[:ldapstackedattrs]] || []) - .map { |var| var.split("=", 2) } - .group_by { |(key, value)| key } - .map { |key, value| [key, value.map(&:last)] } - .to_h - - data[:other] << data_ +begin + require 'ldap' + require 'puppet/util/ldap/connection' + + Facter.add("ldapvar") do + setcode do + if Puppet[:node_terminus].to_sym != :ldap + data = [] + else + begin + conn = Puppet::Util::Ldap::Connection.instance + conn.start + connection = conn.connection + rescue ::LDAP::ResultError => e + raise Puppet::ParseError, ("ldapquery(): LDAP ResultError - #{e.message}") + end - if data_["cn"].any? { |cn| cn == host } - data[:self] = data_ + host = Facter.value('ec2_metadata')["hostname"] + base = Puppet[:ldapbase] + scope = ::LDAP::LDAP_SCOPE_SUBTREE + filter = "(objectclass=*)" + + data = { + :self => {}, + :other => [], + } + + connection.search(base, scope, filter) do |entry| + data_ = entry.to_hash + data_['vars'] = (data_[Puppet[:ldapstackedattrs]] || []) + .map { |var| var.split("=", 2) } + .group_by { |(key, value)| key } + .map { |key, value| [key, value.map(&:last)] } + .to_h + + data[:other] << data_ + + if data_["cn"].any? { |cn| cn == host } + data[:self] = data_ + end end - end - data + data + end end end +rescue LoadError + # No facts end - -- cgit v1.2.3