使用 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
我正在尝试使用 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