假设我有这个MAC地址:
04:f0:21:38:f5:a3
我正在寻找Ansible的方法来修改它。在这种情况下,我需要执行以下操作:
将最少4位有效位设置为0。 翻转第7位。
结果是:
06:f0:21:38:f5:a0
在Ansible中有一种简单的方法吗?
答案 0 :(得分:2)
我不确定“将最少4位有效位设置为0.翻转第7位。”是指,但这是您自定义的方法:
从2.10开始,我没有看到在Jinja2中执行按位操作的方法,所以编写一个自定义过滤器(将它放在playbook目录下的filter_plugins/bitwise_filters.py
中):
#!/usr/bin/python
class FilterModule(object):
def filters(self):
return {
'bitwise_and': self.bitwise_and
}
def bitwise_and(self, a, b):
c = a & b
return c
使用自定义过滤器和hwaddr
过滤器:
debug:
msg: "{{'04:f0:21:38:f5:a3'|hwaddr('int') | bitwise_and('00:ff:ff:ff:ff:ff'|hwaddr('int')) | hwaddr('linux')}}"