我需要在jinja2的路径/etc/bind/example.com下的绑定文件中增加序列号。
示例如下:
$TTL 86400
@ 3600 IN SOA example.server.com. hostmaster.example.it. (
2019290603 ; Serial
////////////////////
我想要这个:
2019290604 ; Serial
或
2019290700 ; Serial
我需要Jinja2,因为我会用Ansible把它自动化。
我该怎么做?
最佳答案
下面的任务完成任务。
vars:
next_serial: '2019290604'
tasks:
- lineinfile:
path: /etc/bind/example.com
regexp: '(?!.*{{ next_serial }}.*)^(\s*)(\s\d*)(\s*;\s*Serial.*)$'
line: '\1 {{ next_serial }}\3'
backrefs: yes
regexp首先向前看,只有在下一个序列不存在时才匹配行。这使得任务具有等幂性。
与数字匹配的组(\s\d*)故意占用一个空格,并使第一个组缩短一个空格。“行:'\1{{…”通过分隔第一个组1并展开变量{{next{u serial},将空间添加回来。由于某些原因,'\1{{next_serial}}\3'不能按预期工作。
关于php - 如何使用jinja2在/etc/bind文件中增加Serial,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57004676/