我发现 Ansible 创建 DNS 记录的方式与我手动创建的方式不同;特别是在创建反向 DNS 记录 (PTR) 时。我在 Rocky Linux 8.5 版上运行 Ansible 2.9.27 版。
假设,例如,我从身份管理控制台手动为一台名为“MyTest”、IP 地址为 100.99.97.7 的机器添加了 DNS 记录,并选中它的复选框以创建反向记录。然后从域中的另一台机器(mts.sys)我使用“dig -x 100.99.97.7”执行反向查找。它将在结果答案中收到“MyTest.mts.sys”。这是期望的结果。
如果我使用 Ansible 创建 DNS 记录,那么我必须使用两个 Ansible 任务来完成它。第一个任务是创建基本 A 记录,第二个任务是将 PTR 记录添加到反向 DNS 区域。以下是目前这两个任务的样子:
- name: MyTest.mts.sys forward
ipa_dnsrecord:
ipa_pass: <password-redacted>
ipa_user: <user-redacted>
zone_name: mts.sys
record_name: MyTest
record_type: 'A'
record_value: 100.99.97.7
state: present
- name: MyTest.mts.sys reverse
ipa_dnsrecord:
ipa_pass: <password-redacted>
ipa_user: <user-redacted>
zone_name: 97.99.100.in-addr.arpa
record_name: '7'
record_type: 'PTR'
record_value: 'MyTest'
state: present
运行这两个任务后,我可以通过在 Identity Manager 中查看记录来确认已创建记录。他们出现了; 据我所知,就像我手动创建它们一样。但是,如果我使用与以前相同的命令;“dig -x 100.99.97.7”然后答案返回为“MyTest.mts.sys.97.99.100.in-addr-arpa”。发生这种情况时,它会阻止我在剧本的后期成功安装 Foreman。
使用 Ansible 在 FreeIPA 中创建 DNS 记录(A 和 PTR)的正确方法是什么?