Ansible - 'unicode object'没有属性'file_input'

时间:2017-03-28 12:34:59

标签: unicode nested ansible

我正在使用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因为它必须使用,我错过了什么?

1 个答案:

答案 0 :(得分:0)

在:

with_nested:
  - software_output

software_output是字符串software_output

要引用变量值,请更改为:

with_nested:
  - "{{ software_output }}"

很久以前第一种语法是有效的,但是很久以前。