Ansible剧本报错无法解析community.general.alternatives模块求修复
Ansible Playbook报错修复方案
问题定位
本次报错和缩进无关,核心原因是Ansible运行环境缺少community.general集合,无法识别该集合下的alternatives模块。
修复步骤
- 安装缺失的
community.general集合
在Ansible控制节点执行以下命令:ansible-galaxy collection install community.general - (可选)安装Docker相关模块依赖集合
原playbook中使用的docker_image、docker_container模块现已归属community.docker集合,若后续运行提示找不到对应模块,执行以下命令安装:ansible-galaxy collection install community.docker - (可选)优化Python依赖包
原playbook中安装的docker-py是旧版本废弃包,当前Docker官方Python SDK包名为docker,建议替换避免兼容性问题。
修复后完整Playbook
--- - name: Deploying httpd container using GIT Repo for web content - part3 hosts: Docker-hosts # 若不需要修改全局python软链接,可直接指定ansible使用的python解释器,省略下方alternatives任务 # vars: # ansible_python_interpreter: /usr/bin/python3 tasks: - name: Correct python version selected community.general.alternatives: name: python path: /usr/bin/python3 - name: Install docker python SDK pip: name: docker - name: pulling docker image community.docker.docker_image: name: httpd source: pull - name: creating a container community.docker.docker_container: name: webos image: httpd volumes: - /root/ansible1/index.html:/usr/local/apache2/htdocs/ ports: - "82:80" state: started detach: yes
内容的提问来源于stack exchange,提问作者Ofer.W
相关产品推荐
相关产品推荐

