Ubuntu openldap的puppet安装上的凭据无效

Ubuntu openldap的puppet安装上的凭据无效,ubuntu,puppet,openldap,Ubuntu,Puppet,Openldap,我在让puppet使用以下方法安装工作正常的openldap服务器时遇到问题: 流浪汉1.2.2 Ubuntu 12() 我的vagrant文件夹中有torian/ldap模块,基本puppet文件中有以下内容: class { 'ldap::server::master': suffix => 'dc=example,dc=co,dc=uk', rootpw => 'adminadmin'; } vagrant up在没有任何错误的情况下启动VM

我在让puppet使用以下方法安装工作正常的openldap服务器时遇到问题:

  • 流浪汉1.2.2
  • Ubuntu 12()
我的vagrant文件夹中有torian/ldap模块,基本puppet文件中有以下内容:

class { 'ldap::server::master':
  suffix      => 'dc=example,dc=co,dc=uk',
  rootpw      => 'adminadmin';
}
vagrant up
在没有任何错误的情况下启动VM,并且openldap正在端口389上运行。据我所知,root用户应默认为:

cn=admin,dc=example,dc=co,dc=uk
但如果我尝试远程或使用以下方式与上述用户/密码连接:

ldapadd -x -D "cn=admin,dc=example,dc=co,dc=uk" -W
我收到一个
无效凭据
错误。我也尝试过使用相同的密码:

rootpw      => '{SHA}3ZRwlSi7HIPQjzCI1AQ/R0KJH08=';
但是没有运气。有人能看出我做错了什么吗

更新

运行
slapcat-f/usr/share/slapd/slapd.conf
显示以下两个条目:

creatorsName: cn=admin,dc=nodomain
userPassword:: e1NTSEF9R2lES2JuRERqYU1rNGROSG5rN1hTa3dteEdOVjBlYmU=
这些与传递给puppet模块的显然不同

快到了……

感谢埃姆斯沃思为我指明了正确的方向,它几乎成功了。它正在复制一个LDIF更新文件,并试图在其上运行ldapmodify以修改根DN和密码,但这似乎会损坏某些东西。在ldapmodify之前,slapd服务启动正常,之后尝试重新启动slapd失败。更新文件为:

dn: olcDatabase={1}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com
-
replace: olcRootDN
olcRootDN: cn=admin,dc=example,dc=com
-
replace: olcRootPW
olcRootPW: {SHA}3ZRwlSi7HIPQjzCI1AQ/R0KJH08=
-
它正在使用以下命令运行:

/usr/bin/ldapmodify -Y EXTERNAL -H ldapi:/// -f
  /etc/ldap/slapd.conf/cn=config/olcDatabase={1}hdb-update.ldif
尝试以root用户身份使用上述命令手动运行更新时出现错误:

ldap_modify: Other (e.g., implementation specific) error (80)
在syslog中:

Jan  6 15:31:15 ubuntu-server-12042-x64-vbox4210 slapd[19166]: ldif_write_entry:
cannot create file for "olcDatabase={1}hdb,cn=config": Permission denied

我相信您在使用puppet模块时遇到了限制(请参阅对原始问题的评论)。您可以尝试修改ldap实例以使用旧式配置,创建一个单独的puppet指令来替换olc文件,甚至尝试修补模块(有一个补丁可以正确处理github上的较新配置).

如果在类定义中添加
rootdn
指令,是否有效

class { 'ldap::server::master':
  suffix      => 'dc=example,dc=co,dc=uk',
  rootdn      => 'cn=admin,dc=example,dc=co,dc=uk',
  rootpw      => 'adminadmin',
}

我不知道这个特定的类,但我知道OpenLDAP OOTB不一定设置根DN。

您使用的是哪个版本的OpenLDAP?它已经安装了OpenLDAP-2.4.28您知道您使用的是OLC(动态)配置还是传统配置吗?我可以在:/etc/openldap/slapd.d/cn=config/olcDatabase={0}config.ldif中设置管理员用户和密码,但我使用的是动态配置。我有一个“/etc/ldap/slapd.conf/cn=config/olcDatabase={1}hdb.ldif”文件,其中包含更新中提到的用户/密码(cn=admin,cn=nodomain)。我希望我可以修改它们,但我真的希望puppet模块能够正确设置它们。我猜您遇到了ldap puppet模块的一个限制:,特别是关于dynamic config vs slapd.conf config。修补程序没有按原样工作,路径问题等,但在解决了这些问题之后,它几乎就出现了,ldapmodify只剩下一个问题。我会用这个来更新这个问题。。。