2016-12-30 4 views
0

今度はカスタムpsagers/ansible-ldapモジュールを使用しています。ちょうど最近、私はそれが私が過去を過ごすことができないという問題にぶつかり始めました。誰でも次のエラーの原因を知っていますか?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'] 

私は推測しなければならないとしたら、それはこのモジュールは引数を処理する方法に関連しています(例:objectClassではありませんモジュールargとして定義されていますが、モジュールはそれを見つけて使用するように設計されています)。モジュールの引数が最近どのように処理されるかをAnabilitiesが変更しましたか?

答えて

0

これを見つけて修正しました。これはAnipalモジュールのバグでした。モジュールは、間違ったタイプのオブジェクトのいくつかを重いリフティングのほとんどを行うpython-ldapライブラリに渡していました(何らかの理由でAnsible 2.2のみで)。

ライブラリのフォークには、https://github.com/karlmdavis/ansible-role-ldapと書いてあります。

追加のボーナスとして、そのフォークはモジュールの実際のテストカバレッジを持っています(Travis CI提供)。

関連する問題