使用 Ansible 拆分 MAC 地址并递增

Split MAC Address and increment using Ansible

我正在尝试使用 mac 地址并将其中一个值递增 1,例如46:7f:d3:17:06:0b 到 46:7f:d3:17:07:0b

我已经尝试了几个选项来尝试拆分变量 : 然后尝试将值增加 1,但我仍然遇到问题。

有没有人做过这个或类似的事情,你拆分一个字符串,递增 1,然后重建字符串

更新:

这就是我的尝试,它将 06 递增到 7,因为我将它转换为整数,所以我需要在 7 之前添加 0。

我只是不确定是否有更简洁、更简单的方法来完成此操作。

- set_fact:
    last_mac: "{{ vm.ovirt_nics | json_query(jmesquery)| last}}"
  vars:
    jmesquery: "[*].mac.address"

- debug:
    msg: "{{ last_mac }}"

- set_fact:
   value_to_increment: "{{ last_mac.split(':')[4] }}"

- debug:
    msg: "{{ value_to_increment }}"

- set_fact:
   incremented_value: "{{ value_to_increment | int + 1 }}"

- debug:
    msg: "{{ incremented_value }}"

例如

    - set_fact:
        incremented_value: "{{ new|join(':') }}"
      vars:
        arr: "{{ last_mac.split(':') }}"
        ar4: "{{ '%02x' % (arr.4|int(base=16) + 1) }}"
        new: "{{ arr[:4] + [ar4] + arr[5:] }}"

给予

  incremented_value: 46:7f:d3:17:07:0b