Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带计数的列表上的Ansible循环_Ansible_Jinja2 - Fatal编程技术网

带计数的列表上的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}