Ambari Kerberos 自动化
简介
在 Ambari 2.0.0 之前,要配置 Ambari 集群使用 Kerberos,需要在每台主机上设置 Kerberos 客户端基础设施、创建所需身份、生成并分发所需的 keytab 文件,以及更新必要的配置属性。对于小型集群,这项工作似乎并不繁重;但是,随着集群规模扩大,所需工作量也会增加。
Ambari 的 Kerberos 自动化功能正可以解决这个问题。它会执行所有这些步骤,并帮助在添加新服务和主机时维护集群。
Kerberos 自动化既可以通过 Ambari REST API 调用,也可以通过 Ambari UI 中的 启用 Kerberos 向导 调用。
工作原理
能够使用 Kerberos 凭据进行身份验证的 Stack 和服务必须提供 Kerberos 描述符,声明所需的 Kerberos 身份以及更新配置的方式。Ambari 基础设施利用这些数据和管理员应用的任何更新,执行初始启用 Kerberos、为主机和新增组件启用 Kerberos、重新生成凭据以及禁用 Kerberos 等相关操作。
需要注意的是,在执行任何自动化任务之前,必须先在集群的所有主机上安装 Kerberos 服务。如果使用 Ambari UI,这应作为启用 Kerberos 向导流程的一部分完成。
启用 Kerberos
启用 Kerberos 时,集群中的所有服务都应处于停止状态。主要原因是避免服务停止后、集群切换为使用 Kerberos 并重新启动服务时出现状态问题。
批量为集群启用 Kerberos 时会执行以下步骤:
- 在配置的 KDC(或 Active Directory)中创建或更新账号
- 生成 keytab 文件并将其分发到适当的主机
- 更新相关配置
添加组件
如果 Ambari 集群已启用 Kerberos,每当添加新组件时,都会自动为新组件配置 Kerberos,并根据需要创建和分发所需的 principal 和 keytab 文件。
每个新组件安装并启动前会执行以下步骤:
- 更新相关配置
- 在配置的 KDC(或 Active Directory)中创建或更新账号
- 生成 keytab 文件并将其分发到适当的主机
添加主机
添加新主机时,必须在该主机上安装 Kerberos 客户端。这不会自动发生;但是,如果 Ambari 集群已启用 Kerberos,Ambari UI 中的 添加主机向导 会执行此步骤。添加主机后,通常会在其上安装一个或多个组件,请参阅添加组件。
重新生成 Keytab
集群启用 Kerberos 后,可能需要重新生成 keytab。可以采用以下两种模式之一:
all:创建缺失的 principal,并无条件更新现有 principal 的密码,然后创建并分发所有相关 keytab 文件missing:创建缺失的 principal,然后为新创建的 principal 创建并分发 keytab 文件
无论采用哪种模式,重新生成过程完成后都应重启受影响的服务。
通过 Ambari UI 执行时,系统会询问用户要使用哪种 keytab 重新生成模式,以及是否重启服务。
禁用 Kerberos
如果需要从 Ambari 集群中移除 Kerberos,Ambari 会删除受其管理的 Kerberos 身份、keytab 文件和 Kerberos 专用配置。Ambari UI 会执行停止和启动服务以及删除 Kerberos 服务的步骤;但是,如果使用 Ambari REST API,则需要手动完成这些操作。