Ansible使用get_url模块替换变量时运行playbook报错如何解决?
报错原因
- YAML语法缩进错误:你将
get_url模块的url参数值直接写在了get_url:之后,后续的dest、username、password参数多缩进了一级,YAML会将这些参数识别为"{{ url_artifact }}"这个字符串的子属性,字符串不存在子属性,因此触发解析报错。 - 模块参数写法不符合Ansible规范:
get_url的所有参数都是同级配置项,不能直接把url的值挂在get_url字段后面。
修正后的代码
- name: Download Artifact get_url: url: "{{ url_artifact }}" dest: "/tmp/artifacts/{{ app_name }}" username: "{{ username }}" password: "{{ password }}"
修正逻辑为将url明确作为get_url下的参数项,所有参数保持同级缩进即可,你原本的变量引用加引号的写法没有问题,无需调整。
内容的提问来源于stack exchange,提问作者Dalio141
相关产品推荐
相关产品推荐

