我有一个非常过时的 puppet 安装,它使用 Rack puppetmaster 服务。我试图让它稍微更新一下,我的第一步是改用 puppetserver。
我创建了旧服务器的副本(称为 new-puppetserver),并在 db 服务器上运行 puppetdb 的副本。我安装了 puppetserver 1.1.3,因为有关如何从 Rack 更新的文档建议升级到最新版本的 puppetserver 1.1。服务运行,证书有效。但是,当尝试使用配置为将其用作主服务器的机器针对 new-puppetserver 运行 puppet 代理时,我收到 LDAP 错误:
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Problem fetching managers for from LDAP: Could not connect to LDAP: Could not connect to LDAP: Can't contact LDAP server at /etc/puppet/environments/production/manifests/modules/companyusers/manifests/managers.pp:29 on node mymachine.corp.mycompany.com
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
“managers.pp” 是一个依赖于从 LDAP 收集的信息的清单。旧 puppetmaster 使用 LDAP 连接来获取用户数据等。Tcpdump 显示,当代理运行时,new-puppetserver 会在正确的端口上联系 ldap 服务器。
但是,LDAP 服务器的 slapd.log 记录不到任何连接,甚至没有错误。我检查过 puppetserver 似乎使用 /etc/puppet.conf 进行 LDAP 设置,因为更改那里的端口等会导致 tcpdump 发生变化。
我的/etc/puppet.conf:
[main]
server = new-puppetserver.corp.mycompany.com
logdir = /var/log/puppet
vardir = /var/lib/puppet
ssldir = $vardir/ssl
rundir = /var/run/puppet
prerun_command = $confdir/etckeeper-commit-pre
postrun_command = $confdir/etckeeper-commit-post
[agent]
environment = production
pluginsync = true
[master]
environmentpath = $confdir/environments
storeconfigs = true
storeconfigs_backend = puppetdb
reports = store,puppetdb
ldapserver = ldapserver.corp.mycompany.com
ldapbase = dc=mycompany,dc=com
ldapssl = true
ldapport = 636
ldapuser = cn=puppet,ou=Accounts,dc=mycompany,dc=com
ldappassword = mypassword
我又安装了一个 gem,jruby-ldap-patched gem。我的 gem 列表目前如下所示:
# puppetserver gem list
*** LOCAL GEMS ***
jar-dependencies (0.1.13)
jruby-ldap-patched (0.0.3)
jruby-openssl (0.9.7 java)
json (1.8.0 java)
rake (10.1.0)
rdoc (4.1.2)
知道我应该在哪里找到 LDAP 连接,使其以类似于 Rack puppetmaster 的方式工作吗?
答案1
因此,尽管我仍然遇到问题,但问题不再是 LDAP 连接。当我下载 jruby-ldap-0.0.2(也适用于 jruby-ldap-0.0.3)gemfile 并安装它时,LDAP 连接开始工作,puppetserver gem install jruby-ldap-0.0.2 --local
然后可以不安全地连接我的 ldap 服务器。对最后一部分不太满意,但是呃。