Ansible - 我可以在循环中对数字求和吗?

Wil*_*oso -1 sum ansible

有人知道如何在ansible中对循环中的数字求和并设置为变量吗?

下列的:

- set_fact:
    total: "{{ sum(item | int) }}" <--- it's not work!!!
  loop:
    - 1
    - 4
    - 3
 - debug: var=total
Run Code Online (Sandbox Code Playgroud)

谢谢

ili*_*-sp 6

操作方法如下:

  - set_fact:
        total: "{{ total|default(0)|int + item|int }}"
    loop:
        - 1
        - 4
        - 3

  - debug: var=total
Run Code Online (Sandbox Code Playgroud)

通过添加default过滤器,您不需要total在该vars部分中声明(初始化为 0)变量。

输出:

PLAY [localhost] ****************************************************************************************************************************************************************************************************

TASK [set_fact] *****************************************************************************************************************************************************************************************************
ok: [localhost] => (item=1)
ok: [localhost] => (item=4)
ok: [localhost] => (item=3)

TASK [debug] ********************************************************************************************************************************************************************************************************
ok: [localhost] => {
    "total": "8"
}

PLAY RECAP **********************************************************************************************************************************************************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0   
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你