【问题标题】:ansible loop list and rangeansible循环列表和范围
【发布时间】:2020-01-21 16:48:36
【问题描述】:

我有一个清单:

['bob', 'john', 'jack', 'rick']

我有一个固定的范围:10,20 step: 2

我想构建这个变量:

my_var:
  - name: bob
    content: '10'
  - name: john
    content: '12'
  - name: jack
    content: '14'
  - name: rick
    content: '16'

看来我必须使用 loop 但我不明白如何!

【问题讨论】:

    标签: loops ansible jinja2


    【解决方案1】:

    使用zip 过滤器循环列表。例如剧本

    - hosts: localhost
      vars:
        my_users: ['bob', 'john', 'jack', 'rick']
      tasks:
        - set_fact:
            my_var: "{{ my_var|default([]) +
                        [{'name': item.1, 'content': item.0}] }}"
          loop: "{{ range(10,20,2)|zip( my_users )|list }}"
        - debug:
            var: my_var
    

    给予

    ok: [localhost] => 
      my_var:
      - content: 10
        name: bob
      - content: 12
        name: john
      - content: 14
        name: jack
      - content: 16
        name: rick
    

    【讨论】:

    • 不错!我在看产品或结合.. 而不是 zip
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 2016-10-03
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    相关资源
    最近更新 更多