如何提取Python输出的URL并正确赋值给Ansible get_url模块的url参数
Ansible提取Python脚本输出URL的修复方案
你遇到的报错由三个可修复的问题导致,按以下步骤修改即可:
- 修正变量引用语法:Ansible的Jinja2变量插值需使用
{{ 变量名 }}格式,你代码中写的((output}}属于语法错误 - 正确提取脚本输出内容:
script模块的注册返回值是结构化对象,脚本打印的标准输出内容存放在stdout子属性中,不能直接引用整个output变量 - 清理输出末尾空白:Python的默认打印逻辑会在输出末尾追加换行符,需使用
trim过滤器清理首尾空白字符,避免URL识别异常
修正后的完整剧本代码如下:
- name: get url from python code script: get_url.py register: output - debug: var=output.stdout - name: Use URL to download file get_url: url: "{{ output.stdout | trim }}" dest: "/path/example/"
修改完成后可先运行调试步骤确认output.stdout的值符合预期,再执行下载任务即可。
内容的提问来源于stack exchange,提问作者testcodezz
相关产品推荐
相关产品推荐

