我正在开发一个ansible playbook来开始我们的配置过程,我接受了许多变量的用户输入,包括主机名和ip。一旦我有了ip,我就可以计算出我需要给Cobbler的网关,但我似乎无法弄清楚如何在一个ansible playbook的限制内将ip变成一个网关。看起来这应该是可能的,但我只是没有看到它。
实际上,到目前为止我唯一提出的解决方案是使用模板创建本地文件(这似乎允许更复杂的模板而不仅仅是过滤器),然后使用local_action来执行该文件。但是有更好的方法吗?
答案 0 :(得分:2)
如果您只需要将192.168.123.234之类的内容更改为192.168.1.1,那么下面的内容就可以了:
vars:
ip: '192.168.123.234'
tasks:
- local_action: shell echo {{ ip }} | sed -e 's/\.[0-9]*.[0-9]*.$/.1.1/'
register: result
- local_action: debug msg={{ result.stdout }}
这有点难看,但它完成了工作。