RedHat 8中Ansible 2.9.27无法识别已安装的community.general.timezone模块
解决Ansible 2.9无法识别已安装的community.general集合问题
针对你在RedHat 8、Ansible 2.9.27环境下遇到的ERROR! couldn't resolve module/action 'community.general.timezone'错误,可按以下步骤排查解决:
1. 确认集合安装路径的访问权限
你将集合安装到了/root/.ansible/collections,如果是以普通用户身份运行Ansible,会因权限问题无法读取该路径下的集合文件:
- 要么切换到root用户执行Playbook;
- 要么将集合安装到全局可访问路径:
ansible-galaxy collection install community.general -p /usr/share/ansible/collections
2. 配置Ansible的集合搜索路径
编辑Ansible配置文件(优先级:当前目录./ansible.cfg > 用户目录~/.ansible.cfg > 系统配置/etc/ansible/ansible.cfg),添加collections_path指定集合所在路径:
[defaults] collections_path = /root/.ansible/collections:/usr/share/ansible/collections
配置后重新运行Playbook即可生效。
3. 确保模块调用格式正确
Ansible 2.9对集合模块的支持需要显式指定完整的集合前缀,Playbook中调用模块时不能省略community.general:
- name: 配置系统时区 community.general.timezone: name: Asia/Shanghai
4. 验证集合是否被正确识别
执行以下命令检查模块是否能被找到:
ansible-doc community.general.timezone
如果能正常输出模块文档,说明集合已被识别;若仍报错,继续下一步排查。
5. 安装与Ansible 2.9兼容的集合版本
community.general 6.1.0属于较新版本,可能不再兼容Ansible 2.9。建议安装适配2.9的旧版本集合,比如3.x系列:
ansible-galaxy collection install community.general:3.7.0
内容的提问来源于stack exchange,提问作者andrew
相关产品推荐
相关产品推荐

