2.9. 为带有外部 DNS 和外部 CA 作为根 CA 的部署设置参数
完成此流程,来为在使用外部 DNS 解决方案的环境中安装带有外部 CA 作为根 CA 的 IdM 服务器配置清单文件。
此流程中的清单文件使用 INI 格式。或者,也可以使用 YAML 或 JSON 格式。
流程
创建一个
~/MyPlaybooks/目录:$ mkdir MyPlaybooks-
创建一个
~/MyPlaybooks/inventory文件。 打开清单文件进行编辑。指定您要用作 IdM 服务器的主机的完全限定域名(
FQDN)。确保FQDN满足以下条件:- 只允许字母数字字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
- 主机名必须都是小写。
- 指定 IdM 域和域信息。
-
确保
ipaserver_setup_dns选项被设为no或空缺。 -
指定
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=no
[...]
+ 包含所需服务器信息(包括密码)的清单文件示例。
[ipaserver]
server.idm.example.com
[ipaserver:vars]
ipaserver_domain=idm.example.com
ipaserver_realm=IDM.EXAMPLE.COM
ipaserver_setup_dns=no
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=no
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: true
roles:
- role: freeipa.ansible_freeipa.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
+ .为安装的最后步骤创建另一个 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: freeipa.ansible_freeipa.ipaserver
state: present