Ansible uri模块拉取GitLab分支后循环遍历冲突报错如何解决
错误原因
- 标点符号错误:你
loop字段的值使用了中文全角引号”,而非英文半角双引号",Ansible解析配置时会把这个中文引号识别为值的一部分,无法正常读取变量内容,所以第一个报错里开头会出现多余的”字符。 - 对
uri模块返回值的理解错误:Ansible的uri模块会自动解析响应体里的JSON结构,返回结果的json字段已经是解析完成的Python原生数据结构(你的场景下就是列表),不需要额外使用from_json过滤器,加了过滤器反而会因为输入参数是列表而非JSON字符串触发第二个报错。
正确配置
直接使用英文半角引号包裹变量即可,不需要额外加过滤器:
- name: Print Branches debug: msg: "Branch: {{ item }}" loop: "{{ git_branches.json }}"
如果只需要打印分支名称,可以调用分支对象的name属性:
- name: Print Branch Names debug: msg: "Branch: {{ item.name }}" loop: "{{ git_branches.json }}"
内容的提问来源于stack exchange,提问作者Onni
相关产品推荐
相关产品推荐

