AWX LDAP声明式配置故障:AUTH_LDAP_USER_SEARCH设置失败求助
解决AWX Ansible Playbook配置AUTH_LDAP_USER_SEARCH的问题
问题出在AWX API对AUTH_LDAP_USER_SEARCH参数的格式要求上——它需要嵌套列表结构,用来支持单搜索或多搜索联合(LDAP Union),你的两次尝试都不符合这个格式要求:
错误原因分析
- 第一次用字符串赋值:API明确要求该参数为列表类型,因此返回
"Expected a list of items but got type 'str'" - 第二次用单层列表:AWX会将单层列表的每个元素视为独立的搜索配置,导致第一个元素
OU=MyGroup被误判为不完整的搜索项,触发"In order to utilize LDAP Union, input element No. 1 should be a search query array"错误
正确配置方式
将搜索参数包裹在嵌套列表中,外层列表用于容纳多个搜索(即使只有一个搜索也需要保留外层结构),内层列表对应LDAPSearch的参数:[base_dn, scope, filter, 属性列表](属性列表可选,空列表表示返回所有属性)
tasks: - name: Configure AUTH_LDAP_USER_SEARCH awx.awx.settings: name: AUTH_LDAP_USER_SEARCH value: - - "OU=MyGroup,DC=MyDC,DC=net" - "SUBTREE" # 也可以用数字2,对应ldap.SCOPE_SUBTREE - "(sAMAccountName=%(user)s)" - [] # 可选:指定要返回的LDAP属性,空列表则返回所有属性 tower_config_file: "./tower_config_file.cfg"
验证说明
这个结构和AWX GUI生成的API请求格式一致,GUI中配置单个LDAP搜索时,后台会自动将参数封装为嵌套列表提交,因此Playbook需要对齐这个格式才能正常生效。
内容的提问来源于stack exchange,提问作者motorbass
相关产品推荐
相关产品推荐

