我正在使用Ansible 2.2.1.0,我正在处理由其他有错误的人制作的旧项目。
我的代码中有以下变量:
software_output:
- { file_input: 'Download_me.zip', file_output: 'download.zip' }
software_version:"0.5,0.6"
我在FTP上下载了这个shell模块指令:
- name: "MySoftware | get package on FTP"
shell: >
curl --ftp-ssl -k {{ ' --ssl-allow-beast ' if os == 'aix' else "" }} -# -f -u {{ ftp_user }}:{{ ftp_password }} -f "{{ ftp_url | replace('@@software_version@@',item[1]) }}{{ item[0].file_input }}"
-o {{ require_inst_dir }}/{{ item[0].file_output }} 2>/dev/null
with_nested:
- software_output
- "{{ software_version.split(',') }}"
when: software_version is defined
但它根本不起作用,我有以下错误:
'unicode object' has no attribute 'file_input'
看起来没有使用with_nested因为它必须使用,我错过了什么?
答案 0 :(得分:0)
在:
with_nested:
- software_output
software_output
是字符串software_output
。
要引用变量值,请更改为:
with_nested:
- "{{ software_output }}"
很久以前第一种语法是有效的,但是很久以前。