带计数的列表上的Ansible循环
给定一个计数,比如说带计数的列表上的Ansible循环,ansible,jinja2,Ansible,Jinja2,给定一个计数,比如说5,以及一个字符串列表['string1',string2','string3'],我想循环给定次数的字符串列表。预期的输出将是['string1',string2','string3','string1','string2'] 我认为这与loop.cycle的作用类似,但是,我想在剧本中将其作为键的值,而不是模板中的值。有什么典型的方法可以做到这一点吗?如果我需要制作一个定制的filter_插件,我想这没什么大不了的,但是我想知道这个功能是否已经存在了 我打算使用的实际用例
5
,以及一个字符串列表['string1',string2','string3']
,我想循环给定次数的字符串列表。预期的输出将是['string1',string2','string3','string1','string2']
我认为这与loop.cycle
的作用类似,但是,我想在剧本中将其作为键的值,而不是模板中的值。有什么典型的方法可以做到这一点吗?如果我需要制作一个定制的filter_插件,我想这没什么大不了的,但是我想知道这个功能是否已经存在了
我打算使用的实际用例是能够将给定的子网列表与主机数匹配,以提供任意数量的主机来跨越子网列表。结果列表可能会被带有索引项的循环使用。例如:
---
- hosts: localhost
gather_facts: no
connection: local
vars:
mylist:
- string1
- string2
- string3
tasks:
- debug:
msg: "{{ mylist[item|int % 3] }}"
with_sequence: start=0 end=4
例如:
---
- hosts: localhost
gather_facts: no
connection: local
vars:
mylist:
- string1
- string2
- string3
tasks:
- debug:
msg: "{{ mylist[item|int % 3] }}"
with_sequence: start=0 end=4
这很有帮助,谢谢。最后我做了一个小小的修改:--hosts:localhost-gather_-facts:no-connection:local-vars:count:5 mylist:-string1-string2-string3任务:-调试:msg:{{mylist[item | int%mylist | length]}带有{u序列:start=0 end={count 1}这非常有用,非常感谢。最后我做了一个小小的修改:--hosts:localhost-gather_-facts:no-connection:local-vars:count:5 mylist:-string1-string2-string3任务:-调试:msg:{{mylist[item | int%mylist | length]}带{u序列:start=0 end={count 1}