ansible-使用ipmath将1添加到ip地址变量

ansible-使用ipmath将1添加到ip地址变量,ansible,ip-address,Ansible,Ip Address,这似乎应该相当简单。我在default.yml中定义了一个变量,我想增加一个: start_ip: 10.10.10.10 然后我设定事实并报告: - set_fact: repo_ip: "{{ start_ip|ipmath(1) }}" - debug: msg: "repo_ip is {{ repo_ip }}" 我也试过: - set_fact: repo_ip: "{{ start_ip }}

这似乎应该相当简单。我在default.yml中定义了一个变量,我想增加一个:

start_ip: 10.10.10.10
然后我设定事实并报告:

- set_fact:
    repo_ip:  "{{ start_ip|ipmath(1) }}"

- debug:
   msg: "repo_ip is {{ repo_ip }}"
我也试过:

 - set_fact:
       repo_ip:  "{{ start_ip }}|ipmath(1)"
同样的结果是:

repo_ip is 10.10.10.10|ipmath(1)

当然我想要的是10.10.10.11。我做错了什么?

尝试
ansible.netcommon.ipmath(5)
而不是
ipmath(1)


另外,您在所有示例中都缺少第二组双引号

实际上,它应该与第一个示例中所写的一样有效。第二个显然是错误的,因为过滤器只在花括号内工作

    - hosts: localhost
  gather_facts: false
  connection: local
  vars:
    start_ip: 10.10.10.10

  tasks:
    - set_fact:
        next_ip: "{{ start_ip|ipmath(1) }}"
    - debug:
        msg: "Next ip of {{ start_ip }} is: {{ next_ip }}"
这将返回您想要的内容

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

TASK [set_fact] ****************************************************************
ok: [localhost]

TASK [debug] *******************************************************************
ok: [localhost] => {
    "msg": "Next ip of 10.10.10.10 is: 10.10.10.11"
}

谢谢你发现我缺少双引号-我修正了。在上面尝试过之后,我在我的sources.list文件中得到了“10.10.10.10 | ansible.netcommon.ipmath(5)”。效果非常好。谢谢!