第 26 章 使用 Ansible playbook 安装身份管理副本


使用 Ansible 将系统配置为 IdM 副本,来将其注册到 IdM 域,并让系统使用域中 IdM 服务器上的 IdM 服务。

部署是由 ipareplica Ansible 角色来管理的。该角色可以使用自动发现模式来识别 IdM 服务器、域和其他设置。但是,如果您在类似层的模式中部署多个副本,在不同时间部署了不同的副本组,则必须为每个组定义特定的服务器或副本。

先决条件

26.1. 指定用于安装 IdM 副本的基础、服务器和客户端变量

完成这个步骤来配置用于安装 IdM 副本的清单文件。

先决条件

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

    • 您使用 Ansible 版本 2.15 或更高版本。
    • 您已在 Ansible 控制器上安装了 ansible-freeipa 软件包。

流程

  1. 打开清单文件进行编辑。指定要成为 IdM 副本的主机的完全限定域名(FQDN)。FQDN 必须是有效的 DNS 名称:

    • 仅允许数字、字母字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
    • 主机名必须都是小写。

      仅定义副本 FQDN 的简单清单主机文件示例

      [ipareplicas]
      replica1.idm.example.com
      replica2.idm.example.com
      replica3.idm.example.com
      [...]

      如果 IdM 服务器已经部署,且在 IdM DNS 区中正确设置了 SRV 记录,那么脚本会自动发现所有其他必需的值。

  2. 可选:根据您是如何设计拓扑的,来在清单文件中提供额外的信息:

    场景 1

    如果要避免自动发现,并且使 [ipareplicas] 部分中列出的所有副本都使用特定的 IdM 服务器,请在清单文件的 [ipaservers] 部分中设置服务器。

    带有 IdM 服务器 FQDN 和定义的副本的清单主机文件示例

    [ipaservers]
    server.idm.example.com
    
    [ipareplicas]
    replica1.idm.example.com
    replica2.idm.example.com
    replica3.idm.example.com
    [...]

    场景 2

    或者,如果您想避免自动发现,但希望使用特定的服务器来部署特定副本,请分别在清单文件的 [ipareplicas] 部分中为特定副本设置服务器。

    为特定副本定义了特定 IdM 服务器的清单文件示例

    [ipaservers]
    server.idm.example.com
    replica1.idm.example.com
    
    [ipareplicas]
    replica2.idm.example.com
    replica3.idm.example.com ipareplica_servers=replica1.idm.example.com

    在上例中,replica3.idm.example.com 使用已部署的 replica1.idm.example.com 作为其复制源。

    场景 3

    如果您在一个批处理中部署多个副本,并且时间是您关心的问题,那么多层副本部署可能对您很有用。在清单文件中定义特定的副本组,如 [ipareplicas_tier1][ipareplicas_tier2],并在 install-replica.yml playbook 中为每个组设计单独的 play。

    定义了副本层的清单文件示例

    [ipaservers]
    server.idm.example.com
    
    [ipareplicas_tier1]
    replica1.idm.example.com
    
    [ipareplicas_tier2]
    replica2.idm.example.com \ ipareplica_servers=replica1.idm.example.com,server.idm.example.com

    将使用 ipareplica_servers 中的第一个条目。第二个条目将用作回退选项。在使用多个层来部署 IdM 副本时,您必须在 playbook 中有单独的任务来首先从 tier1 部署副本,然后从 tier2 部署副本。

    为不同副本组使用不同 play 的 playbook 文件示例

    ---
    - name: Playbook to configure IPA replicas (tier1)
      hosts: ipareplicas_tier1
      become: true
    
      roles:
      - role: ipareplica
        state: present
    
    - name: Playbook to configure IPA replicas (tier2)
      hosts: ipareplicas_tier2
      become: true
    
      roles:
      - role: ipareplica
        state: present

  3. 可选:提供有关 firewalld 和 DNS 的其它信息:

    场景 1

    如果您希望副本使用指定的 firewalld 区域,如内部区域,您可以在清单文件中指定它。如果您没有设置自定义区,IdM 会将其服务添加到默认的 firewalld 区中。预定义的默认区是 public

    重要

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

    带有自定义 firewalld 区域的简单清单主机文件示例

    [ipaservers]
    server.idm.example.com
    
    [ipareplicas]
    replica1.idm.example.com
    replica2.idm.example.com
    replica3.idm.example.com
    [...]
    
    [ipareplicas:vars]
    ipareplica_firewalld_zone=custom zone

    场景 2

    如果您希望副本托管 IdM DNS 服务,请将 ipareplica_setup_dns=true 行添加到 [ipareplicas:vars] 部分中。另外,请指定您是否要使用每服务器 DNS 转发器:

    • 要配置每服务器转发器,请将 ipareplica_forwarders 变量和字符串列表添加到 [ipareplicas:vars] 部分,例如:ipareplica_forwarders=192.0.2.1,192.0.2.2
    • 要配置无每服务器转发器,请将以下行添加到 [ipareplicas:vars] 部分中:ipareplica_no_forwarders=true
    • 要根据副本的 /etc/resolv.conf 文件中列出的转发器配置每服务器转发器,请将 ipareplica_auto_forwarders 变量添加到 [ipareplicas:vars] 部分。

    带有在副本上设置 DNS 和每个服务器转发器的指令的清单文件示例

    [ipaservers]
    server.idm.example.com
    
    [ipareplicas]
    replica1.idm.example.com
    replica2.idm.example.com
    replica3.idm.example.com
    [...]
    
    [ipareplicas:vars]
    ipareplica_setup_dns=true
    ipareplica_forwarders=192.0.2.1,192.0.2.2

    场景 3

    使用 ipaclient_configure_dns_resolveipaclient_dns_servers 选项(如可用的话)指定 DNS 解析器,以简化集群部署。这在您的 IdM 部署使用集成的 DNS 时特别有用:

    指定 DNS 解析器的清单文件片段:

    [...]
    [ipaclient:vars]
    ipaclient_configure_dns_resolver=true
    ipaclient_dns_servers=192.168.100.1

    注意

    ipaclient_dns_servers 列表必须仅包含 IP 地址。主机名不允许。

其他资源

  • /usr/share/ansible/roles/ipareplica/README.md
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.