31.7. 为带有集成 DNS 和外部 CA 作为根 CA 的部署设置参数


完成这个流程,来为在使用 IdM 集成 DNS 解决方案的环境中安装带有外部 CA 作为根 CA 的 IdM 服务器配置清单文件。

注意

此流程中的清单文件使用 INI 格式。或者,也可以使用 YAMLJSON 格式。

流程

  1. 创建 ~/MyPlaybooks/ 目录:

    $ mkdir MyPlaybooks
  2. 创建一个 ~/MyPlaybooks/inventory 文件。
  3. 打开清单文件进行编辑。指定您要用作 IdM 服务器的主机的完全限定域名(FQDN)。确保 FQDN 满足以下条件:

    • 只允许字母数字字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
    • 主机名必须都是小写。
  4. 指定 IdM 域和域信息。
  5. 通过添加以下选项来指定您要使用集成的 DNS:

    ipaserver_setup_dns=true
  6. 指定 DNS 转发设置。选择以下选项之一:

    • 如果您希望安装过程使用 /etc/resolv.conf 文件中的正向解析器,请使用 ipaserver_auto_forwarders=true 选项。如果 /etc/resolv.conf 文件中指定的名字服务器是 localhost 127.0.0.1 地址,或者如果您在虚拟私有网络中,并且您使用的 DNS 服务器通常无法从公共互联网访问,则不建议使用此选项。
    • 使用 ipaserver_forwarders 选项手动指定您的转发器。安装过程将转发器 IP 地址添加到安装的 IdM 服务器上的 /etc/named.conf 文件中。
    • 使用 ipaserver_no_forwarders=true 选项配置要使用的根 DNS 服务器。

      注意

      如果没有 DNS 转发器,您的环境会被隔离,且基础架构中的其他 DNS 域的名称不会被解析。

  7. 指定 DNS 反向记录和区域设置。从以下选项中选择:

    • 使用 ipaserver_allow_zone_overlap=true 选项来允许创建(反向)区域,即使区已经可解析。
    • 使用 ipaserver_reverse_zones 选项来手动指定反向区域。
    • 如果您不希望安装过程创建反向 DNS 区域,请使用 ipaserver_no_reverse=true 选项。

      注意

      使用 IdM 管理反向区是可选的。您可以改为使用外部 DNS 服务来实现这一目的。

  8. 指定 adminDirectory Manager 的密码。使用 Ansible Vault 来存储密码,并从 playbook 文件中引用 Vault 文件。另外,也可以更安全地指定清单文件中直接的密码。
  9. 可选:指定一个 IdM 服务器使用的自定义 firewalld 区。如果您没有设置自定义区,IdM 会将其服务添加到默认的 firewalld 区中。预定义的默认区域是 public

    重要

    指定的 firewalld 区域必须存在,并且是永久的。

    包含所需服务器信息的清单文件示例(密码除外)

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=true
    ipaserver_auto_forwarders=true
    [...]

    包含所需服务器信息(包括密码)的清单文件示例

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=true
    ipaserver_auto_forwarders=true
    ipaadmin_password=MySecretPassword123
    ipadm_password=MySecretPassword234
    
    [...]

    带有自定义 firewalld 区的清单文件示例

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=true
    ipaserver_auto_forwarders=true
    ipaadmin_password=MySecretPassword123
    ipadm_password=MySecretPassword234
    ipaserver_firewalld_zone=custom zone
    
    [...]

  10. 为安装的第一个步骤创建一个 playbook。输入有关生成证书签名请求(CSR),并将其从控制器复制到受管节点的说明。

    ---
    - name: Playbook to configure IPA server Step 1
      hosts: ipaserver
      become: true
      vars_files:
      - playbook_sensitive_data.yml
      vars:
        ipaserver_external_ca: true
    
      roles:
      - role: ipaserver
        state: present
    
      post_tasks:
      - name: Copy CSR /root/ipa.csr from node to "{{ groups.ipaserver[0] + '-ipa.csr' }}"
        fetch:
          src: /root/ipa.csr
          dest: "{{ groups.ipaserver[0] + '-ipa.csr' }}"
          flat: true
  11. 为安装的最后步骤创建另一个 playbook。

    ---
    - name: Playbook to configure IPA server Step 2
      hosts: ipaserver
      become: true
      vars_files:
      - playbook_sensitive_data.yml
      vars:
        ipaserver_external_cert_files:
          - "/root/servercert20240601.pem"
          - "/root/cacert.pem"
    
      pre_tasks:
      - name: Copy "{{ groups.ipaserver[0] }}-{{ item }}" to "/root/{{ item }}" on node
        ansible.builtin.copy:
          src: "{{ groups.ipaserver[0] }}-{{ item }}"
          dest: "/root/{{ item }}"
          force: true
        with_items:
        - servercert20240601.pem
        - cacert.pem
    
      roles:
      - role: ipaserver
        state: present

其他资源

  • man ipa-server-install(1)
  • /usr/share/doc/ansible-freeipa/README-server.md
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.