1

我试图弄清楚有一种方法可以操纵 ansible 事实,例如 if ansible_default_ipv4.address= 10.100.1.7then 分配10.253.1.7给剧本中的某个变量。

所以基本上我只想替换ansible_default_ipv4.addressfrom 100to的第二个八进制数253

4

2 回答 2

1

我同意@ydaetskcoR。你应该展示你到目前为止所做的尝试。由于这很棘手,我提供了一个解决方案。可能有更好的解决方案,但这一个有效。

  vars:
    myip: 10.100.1.7

  tasks:
  - set_fact: newip="{{ myip | regex_replace('^(\d+)\.100.(\d+\.\d+)$', '\\1.253.\\2') }}"
  - debug: var=newip
于 2016-04-01T00:17:22.463 回答
0

我可以帮助获取 Ansible 2.5.5 中嵌套元素的值(我以名称服务器为例)。您可以使用:

"{{ansible_dns.nameservers[1]}}"

然后,您可以通过在循环或类似中使用项目整数来替换 1 位数字。

于 2018-07-10T16:10:40.273 回答