我正在使用所附图片中显示的代码:Code used for my loop
我需要每次迭代都从0
开始计数,而不是从1
开始计数。我的意思是以下几行:
tmp_list: "{{ tmp_list | default([]) + [dict(name=item.key,seq=lookup('sequence','count='+item.value|string,wantlist=true))] }}"
感谢您的帮助。
答案 0 :(得分:0)
不清楚您要的是什么。
如果您只是想获取当前循环的迭代次数+ 1,则可以使用以下方法进行操作:
#!/usr/bin/env ansible-playbook
---
- name: Lets do some loops
hosts: localhost
become: false
gather_facts: false
vars:
my_list:
- one
- two
- three
tasks:
- name: Loop plus one
debug:
msg: "{{ item }} {{ loop_index + 1 }}"
loop: "{{ my_list }}"
loop_control:
index_var: loop_index
PLAY [Lets do some loops] ********************************************************************************************
TASK [Loop plus one] *************************************************************************************************
ok: [localhost] => (item=one) => {
"msg": "one 1"
}
ok: [localhost] => (item=two) => {
"msg": "two 2"
}
ok: [localhost] => (item=three) => {
"msg": "three 3"
}
PLAY RECAP ***********************************************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0
您可以在Ansible官方文档的Loop Control部分中找到更多信息。
答案 1 :(得分:0)
我找到了解决方法:
- set_fact:
tmp_list: "{{ tmp_list | default([]) + [dict(name=item.key,seq=lookup('sequence','start=0 count='+item.value|string,wantlist=true))] }}"
with_dict: "{{ objs }}"