尝试构建私有云基础设施Ansible自定义模块,执行Playbook遇问题
关于Ansible自定义模块执行Playbook的问题
我正在为咱们的私有云基础设施开发一个Ansible自定义模块,按照官方模块开发指南写好了my_module.py文件。但当我执行ansible-playbook playbook/my_module.yml命令时,只得到了不完整的输出:
PLAY [Create, Update, Delete VM] *********************************************************************************************************
TASK [Gathering Facts] ***************************************************************...
几个可以先排查的方向:
- 先确认自定义模块的存放路径是否合规:默认情况下Ansible会从和playbook同级的
library目录加载自定义模块,或者你也可以在ansible.cfg里配置library参数指定模块路径,路径不对的话Ansible找不到你的模块 - 验证模块本身的语法和可用性:直接用
python my_module.py --help检查脚本有没有语法错误,或者用ansible-doc -M ./library my_module看看Ansible能不能正确识别这个模块的参数和文档 - 开启详细日志定位问题:执行playbook时加上
-vvv参数(ansible-playbook -vvv playbook/my_module.yml),这样能看到更详细的执行日志,比如模块加载失败的原因、参数传递的问题等 - 检查模块的输出格式:Ansible要求自定义模块必须返回标准的JSON格式输出,不能有额外的print语句或者非JSON内容,否则会导致执行中断或者输出异常
内容的提问来源于stack exchange,提问作者Prakash P
相关产品推荐
相关产品推荐

