2016-12-30 95 views
0

我已经成功使用定制psagers/ansible-ldap模块一段时间了。然而就在最近,我开始遇到一个问题,我似乎无法过去。任何人都知道什么可能会导致以下错误?Ansible ldap_entry模块失败,出现“ldap例程参数错误”

TASK [ldap-server : ldap_entry] ************************************************
fatal: [52.90.82.65]: FAILED! => {"changed": false, "exc": "Traceback (most recent call last):\n File \"/tmp/ansible_arqhOa/ansible_module_ldap_entry.py\", line 133, in main\n LdapEntry(module).main()\n File \"/tmp/ansible_arqhOa/ansible_module_ldap_entry.py\", line 194, in main\n action()\n File \"/tmp/ansible_arqhOa/ansible_module_ldap_entry.py\", line 206, in \n action = lambda: self.connection.add_s(self.dn, modlist)\n File \"/usr/lib/python2.7/dist-packages/ldap/ldapobject.py\", line 194, in add_s\n msgid = self.add(dn,modlist)\n File \"/usr/lib/python2.7/dist-packages/ldap/ldapobject.py\", line 191, in add\n return self.add_ext(dn,modlist,None,None)\n File \"/usr/lib/python2.7/dist-packages/ldap/ldapobject.py\", line 176, in add_ext\n return self._ldap_call(self._l.add_ext,dn,modlist,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))\n File \"/usr/lib/python2.7/dist-packages/ldap/ldapobject.py\", line 99, in _ldap_call\n result = func(*args,**kwargs)\nPARAM_ERROR: {'matched': 'dc=hhsdevcloud,dc=us', 'desc': 'Bad parameter to an ldap routine'}\n", "failed": true, "msg": "{'matched': 'dc=hhsdevcloud,dc=us', 'desc': 'Bad parameter to an ldap routine'}"}

似乎与从Ansible 2.0.1.0迁移到2.2.0.0有关。这是一个从这个Ansible任务,这并没有改变未来(和Ansible版本隆起之前的工作):

- ldap_entry: 
    bind_dn: 'cn=admin,dc=hhsdevcloud,dc=us' 
    bind_pw: "{{ ldap_root_password }}" 
    dn: 'ou=people,dc=hhsdevcloud,dc=us' 
    objectClass: ['organizationalUnit'] 

如果我猜的话,它是与此相关的模块如何处理ARGS(如objectClass不定义为模块arg,但该模块旨在查找并使用它)。 Ansible是否会改变最近处理模块参数的方式?

回答

0

找出并修复它 - 这只是Ansible模块的一个错误。该模块将一些错误类型的对象传递给大部分繁重工作的库(python-ldap)(但由于某种原因,只适用于Ansible 2.2)。

我把它固定在我的图书馆的叉子里:https://github.com/karlmdavis/ansible-role-ldap

作为额外的好处,该分支现在有模块的实际测试覆盖率(礼貌Travis CI)。

相关问题