27.6. 使用 Ansible playbook 确保 IdM DNS 全局配置中设置了forward first 策略

按照以下流程,使用 Ansible playbook 确保 IdM DNS 中的全局转发策略被设置为 forward first

如果您使用 forward first DNS 转发策略,则 DNS 查询会被转发到配置的转发器。如果因为服务器错误或超时导致查询失败,则 BIND 会使用 Internet 上的服务器回退到递归解析。forward first 策略是默认的策略。它适用于流量优化。

先决条件

  • 您已配置了 Ansible 控制节点以满足以下要求:

    • 您使用 Ansible 版本 2.14 或更高版本。
    • 您已在 Ansible 控制器上安装了 ansible-freeipa 软件包。
    • 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件
    • 示例假定 secret.yml Ansible vault 存储了 ipaadmin_password
  • 目标节点(这是执行 ansible-freeipa 模块的节点)是 IdM 域的一部分,作为 IdM 客户端、服务器或副本的一部分。
  • 您知道 IdM 管理员密码。
  • 您的 IdM 环境包含一个集成的 DNS 服务器。

流程

  1. 导航到 /usr/share/doc/ansible-freeipa/playbooks/dnsconfig 目录:

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
  2. 打开清单文件,并确保 [ipaserver] 部分中列出了您要配置的 IdM 服务器。例如,要指示 Ansible 配置 server.idm.example.com,请输入:

    [ipaserver]
    server.idm.example.com
  3. 制作一个 set-configuration.yml Ansible playbook 文件的副本。例如:

    $ cp set-configuration.yml set-forward-policy-to-first.yml
  4. 打开 set-forward-policy-to-first.yml 文件进行编辑。
  5. 通过在 ipadnsconfig task 部分中设置以下变量来修改文件:

    • ipaadmin_password 变量设置为 IdM 管理员密码。
    • forward_policy 变量设为 first

      删除原始 playbook 的所有其他不相关的行。这是当前示例修改的 Ansible playbook 文件:

    ---
    - name: Playbook to set global forwarding policy to first
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Set global forwarding policy to first.
        ipadnsconfig:
          ipaadmin_password: "{{ ipaadmin_password }}"
          forward_policy: first
  6. 保存该文件。
  7. 运行 playbook:

    $ ansible-playbook --vault-password-file=password_file -v -i inventory.file set-forward-policy-to-first.yml

其它资源

  • 请参阅 IdM 中的 DNS 转发策略
  • 请参阅 /usr/share/doc/ansible-freeipa/ 目录中的 README-dnsconfig.md 文件。
  • 如需更多 playbook 示例,请参阅 /usr/share/doc/ansible-freeipa/playbooks/dnsconfig 目录。