openldap的puppet安装上的凭据无效

时间:2013-12-20 11:44:26

标签: ubuntu puppet openldap

我在使用以下内容获取木偶安装工作的openldap服务器时遇到了问题:

我在我的vagrant文​​件夹中有torian / ldap模块,以及基本木偶文件中的以下内容:

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

vagrant up启动虚拟机时没有任何错误,openldap正在端口389上运行。根据我的理解,root用户应默认为:

cn=admin,dc=example,dc=co,dc=uk

但如果我尝试远程或使用以下方式连接上述用户/密码:

ldapadd -x -D "cn=admin,dc=example,dc=co,dc=uk" -W

我收到Invalid Credentials错误。我也尝试使用相同的密码SHA编码:

rootpw      => '{SHA}3ZRwlSi7HIPQjzCI1AQ/R0KJH08=';

但没有运气。谁能看到我做错了什么?

更新

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

creatorsName: cn=admin,dc=nodomain
userPassword:: e1NTSEF9R2lES2JuRERqYU1rNGROSG5rN1hTa3dteEdOVjBlYmU=

这些与传递给木偶模块的那些明显不同。

差不多......

感谢emsworth指出我正确的方向,它几乎正常工作。它正在复制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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

如果在类定义中添加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。