По умолчанию list имеет только значения (value) и не имеет индекса (key). Но бывают ситуации когда не плохо было бы иметь этот индекс.
with_indexed_items
Для решения такой задачи можно использовать with_indexed_items вместо with_items
. Он добавляет к каждому значению list числовой индекс, начиная с 0.
Для обращения к индексу используется item.0
, для обращения к значению - item.1
.
Пример
- hosts: localhost
tasks:
- set_fact:
my_list:
- dadasdad
- fdsfsdfs
- fd32wer2
- das902id
- debug:
msg: " key is {{ item.0 }}, value is {{ item.1 }}"
with_indexed_items: "{{ my_list }}"
В результате
TASK [debug] *****************************************************************************************************************************************
ok: [localhost] => (item=[0, u'dadasdad']) => {
"msg": " key is 0, value is dadasdad"
}
ok: [localhost] => (item=[1, u'fdsfsdfs']) => {
"msg": " key is 1, value is fdsfsdfs"
}
ok: [localhost] => (item=[2, u'fd32wer2']) => {
"msg": " key is 2, value is fd32wer2"
}
ok: [localhost] => (item=[3, u'das902id']) => {
"msg": " key is 3, value is das902id"
}
Комментарии