Ansible将int转换为字符串

时间:2018-10-27 19:53:29

标签: python ansible ansible-2.x

我下面有一部剧本。我需要不带小数的输出。

num: 100
var1: "{{ num / 10 |int }}"

实际输出:

 10.0

预期输出:

10

Ansible版本2.7

1 个答案:

答案 0 :(得分:0)

Jinja中的|运算符绑定非常紧密。在这种情况下,您实际上是在执行操作:

100 / (10|int)

当您真正想要的是:

(100/10)|int

您可以使用括号对术语进行适当分组。以下剧本对此进行了演示:

- hosts: localhost
  gather_facts: false
  vars:
    num: 100
  tasks:
    - debug:
        msg: "{{ num/10|int }}"

    - debug:
        msg: "{{ (num/10)|int }}"

运行将产生以下输出:

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

TASK [debug] ************************************************************************
ok: [localhost] => {
    "msg": "10.0"
}

TASK [debug] ************************************************************************
ok: [localhost] => {
    "msg": "10"
}

PLAY RECAP **************************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0