Ansible执行docker_swarm模块报错:无法解析该模块/动作
解决Ansible中docker_swarm模块找不到的问题
错误原因
你遇到的docker_swarm模块找不到的问题,是因为该模块属于community.docker官方集合,而非单独的docker_swarm集合。你之前执行的sudo ansible-galaxy collection install docker_swarm安装的是不存在的集合,所以无法解决问题。
解决步骤
安装正确的Ansible集合
执行以下命令安装包含docker_swarm模块的官方集合:ansible-galaxy collection install community.docker注意:不要使用
sudo,Ansible集合默认安装在用户目录下,使用sudo会导致权限和路径问题。正确引用模块
有两种方式可以让Ansible识别到模块:- 方式一:在任务中使用完整的集合命名空间
修改你的Docker Swarm初始化角色任务:--- - name: Init docker swarm community.docker.docker_swarm: state: present register: init_swarm - 方式二:在Playbook开头声明集合
如果你的Playbook中多个任务都用到community.docker集合的模块,可以在Playbook顶部添加集合引用:- hosts: swarm_managers collections: - community.docker roles: - docker - docker_swarm_manager
- 方式一:在任务中使用完整的集合命名空间
补充Python依赖
Ansible的Docker模块依赖目标主机上的dockerPython库,在你的Docker安装角色中添加以下任务确保依赖安装:- name: Install docker Python library pip: name: docker state: present
验证
完成上述步骤后,重新运行你的Playbook,docker_swarm模块应该可以正常加载并执行初始化操作。
内容的提问来源于stack exchange,提问作者Matheus de Lino Ferreira
相关产品推荐
相关产品推荐

