如何操纵安莎事实?

时间:2016-03-31 21:22:51

标签: automation ansible ansible-playbook ansible-2.x ansible-facts

我试图弄清楚有没有办法操纵安莎事实,例如ansible_default_ipv4.address = 10.100.1.7然后将10.253.1.7分配给剧本中的某个变量。

所以基本上我只想将ansible_default_ipv4.address中的100的第二个八分之一替换为253

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

然后您可以在循环或类似操作中使用整数来替换1位数字。