在Alpine Podman容器中运行Ansible时无法导入python-ldap库
解决Ansible
community.general.ldap_attrs 模块依赖导入失败问题 报错根源
报错信息明确指出目标主机rocky9.localdomain的Python3.9环境缺少python-ldap库,但这里存在逻辑误区:community.general.ldap_attrs模块是用来连接外部LDAP服务器执行属性修改的,根本不需要在目标主机(rocky9)上运行——默认Ansible会将模块分发到目标主机执行,才导致了这个错误。
你的Alpine容器已经正确安装了py3-ldap依赖,所以只需要让任务在控制端(容器本地)执行即可。
解决方案
给ldap_attrs任务添加delegate_to: localhost参数,强制任务在控制端运行:
- name: Modify LDAP attributes community.general.ldap_attrs: dn: "xxx" attributes: servicePrincipalName: - "host/xxx" - "RestrictedKrbHost/xxx" state: present server_uri: "ldap://xx" bind_dn: "cn=xxx,OU=aaa,DC=bbb,DC=ccc" bind_pw: "xxx" delegate_to: localhost
补充说明
- 你之前的
ansible.builtin模块能正常运行,是因为这类模块大多是针对目标主机的操作(如文件管理、系统命令),且目标主机满足依赖要求。 - 容器的构建配置没有问题:已经安装了
py3-ldap、编译依赖(build-base、openldap-dev等),也正确安装了community.general集合。
内容的提问来源于stack exchange,提问作者Denis
相关产品推荐
相关产品推荐

