我在使用以下内容获取木偶安装工作的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
答案 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。