25.7. 为带有集成 DNS 和外部 CA 作为根 CA 的部署设置参数
完成这个流程,来为在使用 IdM 集成 DNS 解决方案的环境中安装带有外部 CA 作为根 CA 的 IdM 服务器配置清单文件。
此流程中的清单文件使用 INI
格式。或者,也可以使用 YAML
或 JSON
格式。
步骤
创建
~/MyPlaybooks/
目录:$ mkdir MyPlaybooks
-
创建
~/MyPlaybooks/inventory
文件。 打开清单文件进行编辑。指定您要用作 IdM 服务器的主机的完全限定域名(
FQDN
)。确保FQDN
满足以下条件:- 只允许字母数字字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
- 主机名必须都是小写。
- 指定 IdM 域和域信息。
通过添加以下选项来指定您要使用集成的 DNS:
ipaserver_setup_dns=yes
指定 DNS 转发设置。选择以下选项之一:
-
如果您希望安装过程使用
/etc/resolv.conf
文件中的转发器,请使用ipaserver_auto_forwarders=yes
选项。如果/etc/resolv.conf
文件中指定的名字服务器是 localhost 127.0.0.1 地址,或者如果您在虚拟私有网络中,并且您使用的 DNS 服务器通常无法从公共互联网访问,则不建议使用此选项。 -
使用
ipaserver_forwarders
选项手动指定您的转发器。安装过程将转发器 IP 地址添加到安装的 IdM 服务器上的/etc/named.conf
文件中。 使用
ipaserver_no_forwarders=yes
选项来配置要使用的根 DNS 服务器。注意如果没有 DNS 转发器,您的环境是隔离的,且基础架构中的其他 DNS 域的名称不能解析。
-
如果您希望安装过程使用
指定 DNS 反向记录和区设置。从以下选项中选择:
-
使用
ipaserver_allow_zone_overlap=yes
选项来允许创建(反向)区域,即使区已可解析。 -
使用
ipaserver_reverse_zones
选项来手动指定反向区。 如果您不希望安装进程创建反向 DNS 区,请使用
ipaserver_no_reverse=yes
选项。注意使用 IdM 管理反向区是可选的。您可以改为使用外部 DNS 服务来实现这一目的。
-
使用
-
指定
admin
和Directory Manager
的密码。使用 Ansible Vault 来存储密码,并从 playbook 文件中引用 Vault 文件。另外,也可以更安全地指定清单文件中直接的密码。 (可选)指定要由 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=yes ipaserver_auto_forwarders=yes [...]
包含所需服务器信息(包括密码)的清单文件示例
[ipaserver] server.idm.example.com [ipaserver:vars] ipaserver_domain=idm.example.com ipaserver_realm=IDM.EXAMPLE.COM ipaserver_setup_dns=yes ipaserver_auto_forwarders=yes 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=yes ipaserver_auto_forwarders=yes ipaadmin_password=MySecretPassword123 ipadm_password=MySecretPassword234 ipaserver_firewalld_zone=custom zone [...]
为安装的第一个步骤创建一个 playbook。输入有关生成证书签名请求(CSR),并将其从控制器复制到受管节点的说明。
--- - name: Playbook to configure IPA server Step 1 hosts: ipaserver become: true vars_files: - playbook_sensitive_data.yml vars: ipaserver_external_ca: yes 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: yes
为安装的最后步骤创建另一个 playbook。
--- - name: Playbook to configure IPA server Step -1 hosts: ipaserver become: true vars_files: - playbook_sensitive_data.yml vars: ipaserver_external_cert_files: "/root/chain.crt" pre_tasks: - name: Copy "{{ groups.ipaserver[0] + '-chain.crt' }}" to /root/chain.crt on node copy: src: "{{ groups.ipaserver[0] + '-chain.crt' }}" dest: "/root/chain.crt" force: yes roles: - role: ipaserver state: present
其他资源
-
有关转发策略的默认设置,请参阅
ipa-dns-install(1)
手册页中的--forward-policy
描述。 -
有关
ipaserver
角色使用的 DNS 变量的更多信息,请参阅/usr/share/doc/ansible-freeipa
目录中README-server.md
文件中的 DNS 变量部分。 - 有关清单文件的更多信息,请参阅 如何构建您的清单。