【发布时间】:2018-11-02 22:55:48
【问题描述】:
我有多个长度相同的数组。我需要遍历长度并调用元素。我尝试了以下一个但失败了。你能告诉我我在哪里做错了吗?或者有没有更好的方法来遍历数组元素。
tasks:
- name: Set facts
set_fact:
SERIAL_NUMBER: ['2342', '4455', '5643']
PASSWORD: ['xxx', 'yyy', 'zzz']
EXP_DATE: ['06-10-18', '07-01-19', '06-01-18']
LICENSE_TYPE: "evaluation"
- name: Execute the script to apply evaluation license
lineinfile:
dest: "/root/test.txt"
line: "{{ SERIAL_NUMBER[{{ item }}] }} {{ PASSWORD[{{ item }}] }} {{ EXP_DATE[{{ item }}] }}"
create: yes
with_sequence: start=0 end={{ SERIAL_NUMBER|length }}
when: "{{ LICENSE_TYPE }}" == "evaluation"
我什至尝试了以下方法来代替 line:。但没有运气。
line: "{{ SERIAL_NUMBER[item]int % SERIAL_NUMBER|length }} {{ PASSWORD[item]int % PASSWORD|length }} {{ EXP_DATE[item]int % EXP_DATE|length }}"
我在这里看到 2 个问题。
- 在花括号内调用花括号的数组元素 {{ {{ }} }}。
- 第二个是在这种情况下使用“when”。
谢谢。
【问题讨论】:
-
错误信息:
TASK [Execute the script to apply evaluation license] ******************************************************************************************** fatal: [10.75.44.199]: FAILED! => {"msg": "template error while templating string: expected token ':', got '}'. String: {{ SERIAL_NUMBER[{{ item }}] }}"}
标签: arrays loops ansible .when ansible-template