【问题标题】:Increment a Byte in an IP address在 IP 地址中增加一个字节
【发布时间】:2020-10-31 10:31:17
【问题描述】:

我想在 Ansible 中做的非常简单的事情......或者你会这么想。

我要做的就是将一个变量 [我稍后在 j2 模板中使用] 设置为 ansible_default_ipv4.network 的值,最后一个字节被截断,第三个字节递增。

所以,如果ansible_default_ipv4.network 是 192.168.10.0,我想将新变量设置为 192.168.11。

这是我目前的做法:

- set_fact:
   x: "{{ ansible_default_ipv4.network.split('.')[0:3] }}"
- set_fact:
   x2: "{{ x.2 | int  + 1 }}"
- set_fact:
   x3: "{{x.0}}.{{x.1}}.{{x2}}"

工作正常,但丑得像盒子或青蛙:(

有没有更清洁的方法?

谢谢!

【问题讨论】:

  • 有一个ipaddr filter可以用来操作涉及IP地址、网络掩码等的东西。您可能对此感兴趣。
  • 这将产生 256。

标签: ansible ansible-template


【解决方案1】:

试试这个

    - set_fact:
        x: "{{ ansible_default_ipv4.network|ipmath(256)|splitext|first }}"

【讨论】:

    猜你喜欢
    • 2012-06-06
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 2023-02-22
    • 2017-03-30
    相关资源
    最近更新 更多