28.8. 使用 Ansible 安装带有集成 eDNS 和集成的 root CA 的 IdM 服务器
您可以使用 ansible-freeipa 软件包中的 ipaserver 角色来安装启用了 DNS-over-TLS (DoT)的身份管理(IdM)服务器。
您可以选择 enforced 或 relaxed 策略。默认情况下,安装程序使用 relaxed 策略,它尝试 DoT,但如果无法建立安全连接,则允许回退到标准未加密的 DNS。要应用 强制 策略,请将 ipaserver_dns_policy 变量设置为 Ansible playbook 的 vars 部分中 强制执行 的。
对于 DoT 的配置,您可以使用集成的 IdM 证书颁发机构(CA)发布的证书,或者提供外部 CA 发布的自定义证书。如果没有提供证书,IdM CA 会在安装过程中自动发布一个 DoT 证书。
如需更多信息,请参阅系统中的 /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/README-server.md。
先决条件
- 您在使用 Ansible 版本 2.15 或更高版本。
-
您已安装了
ansible-freeipa软件包。 -
示例假定
secret.ymlAnsible vault 存储了ipaadmin_password,并且您可以访问存储保护secret.yml文件的密码的文件。 - 查看 为 IdM 服务器安装准备系统 中所述的步骤。
-
对于
enforcedDoT,请完成 配置客户端和副本系统以专门使用 DoT 中的步骤。
流程
可选:对于外部证书颁发机构发布的 DoT 使用自定义 PEM 格式的证书和密钥:
SSH 到您要安装 IdM 服务器的主机:
$ ssh root@server.idm.example.com创建两个文件,并为
命名守护进程分配所有权:# openssl req \ -newkey rsa:2048 \ -nodes \ -keyout /etc/pki/tls/certs/privkey.pem \ -x509 \ -days 36500 \ -out /etc/pki/tls/certs/certificate.pem \ -subj "/C=<country_code>/ST=<state>/L=<location>/O=<organization>/OU=<organizational_unit>/CN=<idm_server_fqdn>/emailAddress=<email>" && \ chown named:named /etc/pki/tls/certs/privkey.pem /etc/pki/tls/certs/certificate.pem退出 IdM 服务器上的 SSH 会话:
# exit
在 Ansible 控制器上,创建一个名为
install-server-integrated-ca.yml的 playbook 文件,其中包含安装带有集成 IdM CA 的 IdM 服务器的说明:--- - name: Playbook to configure IPA server hosts: ipaserver become: true vars_files: - /home/user_name/MyPlaybooks/secret.yml vars: ipaserver_domain: idm.example.com ipaserver_realm: IDM.EXAMPLE.COM ipaserver_hostname: server.idm.example.com ipa_admin_password: "{{ vault_admin_password }}" ipadm_password: "{{ vault_dm_password }}" ipaserver_setup_dns: true ipaserver_dot_forwarders: - "<server_ip>#<dns_server_hostname>" ipaserver_dns_over_tls: true ipaserver_auto_reverse: true roles: - role: freeipa.ansible_freeipa.ipaserver如果您使用由外部证书颁发机构发布的 DoT 的自定义 PEM 格式证书和密钥,请在
vars部分中添加以下内容:ipaserver_dns_over_tls_cert: /etc/pki/tls/certs/certificate.pem ipaserver_dns_over_tls_key: /etc/pki/tls/certs/privkey.pem运行 Ansible playbook:
$ ansible-playbook --vault-password-file=password_file -v -i ~/MyPlaybooks/inventory ~/MyPlaybooks/install-server-integrated-ca.yml
故障排除
SSH到 IdM 服务器:# ssh root@server.idm.example.com为
unbound服务启用详细日志记录:# unbound-control verbosity 3重启
unbound服务以应用更新的配置:# systemctl restart unbound监控
unbound服务的实时日志:$ journalctl -u unbound -f