我使用Ansible生成命名服务器的配置。
我的目标是为每个netowrk生成DNS反向区域文件。为了遵循标准,我必须在许多有类别的区域中分割我的无区域。例如,对于172.16.0.0/23网络,我必须将它分成两个/ 24个反向区域:0.16.172.in-addr.arpa和1.16.172.in-addr.arpa。
我在group_vars / all / networks.yaml中有关于网络的数据:
netX:
subnet: 172.16.0.0
netmask: 255.255.254.0
netmask_short: 23
broadcast: 172.16.1.255
我想从模板生成文件:
- name: Generate reverse files
template:
src: reverse.j2
dest: "/var/named/reverse.{{item['network_name']}}"
owner: root
group: root
mode: 0644
with_items: <DYNAMIC_DATA_GENERATED_FROM_NETWORK_VARIABLES>
在with_items
生成我需要的数据结构的最佳做法是什么?我需要使用一个从文件network.yaml
获取数据并生成如下输出的函数:
[ {'network_name': 'netX',
'zone': '0.16.172.in-addr.arpa']},
{'network_name': 'netX',
'zone': '1.16.172.in-addr.arpa']},]
我是否应该使用先前任务中调用的python脚本并将结果存储在变量中,以便在with_items
中使用它?