[Step1] Ambari 安装 Ranger 并配置 FreeIPA + LDAP
需要 ttr-release 版本 >= 2.2.3
Ambari 3.0.0 + Free IPA 统一认证体系 本文示例环境:Kylin V10 SP3 x86,Realm = TEST.COM
# 一、整体架构与安装目标
Ranger 在统一认证体系中承担「权限中心」角色,用户与组数据来自 FreeIPA(LDAP),认证能力来自 Kerberos(KDC/Realm)。
# 1.1 组件关系一图流
| 组件 | 职责 | 说明 |
|---|---|---|
| FreeIPA | 用户/组目录 | Ranger 通过 LDAP 查询用户与组 |
| Kerberos | 认证体系 | Ranger 与插件侧使用 SPNEGO/Keytab |
| Ranger Admin | 权限控制台 | 依赖 LDAP + Kerberos |
| Ranger Plugin | 资源侧执行 | HDFS/Hive/Kafka 等插件执行鉴权 |
# 1.2 本文落地目标
- Ambari 正常安装 Ranger Admin
- Ranger Admin 能通过 LDAPS 查询 FreeIPA 中用户与组
- Ranger HA 场景下补齐 HTTP/ranger-ha.hadoop.com principal,避免安装流程中断
# 二、准备工作:FreeIPA 创建 Ranger Bind 用户
Ranger 连接 LDAP 必须使用绑定账户(Bind DN),建议专门创建,避免使用 admin。
# 2.1 创建用户
ipa user-add rangerbind \
--first=Ranger \
--last=Bind \
--shell=/sbin/nologin
2
3
4
设置密码:
ipa passwd rangerbind
示例密码:
rangerbind@2026
创建过程与结果如下:


# 2.2 绑定账户设计说明
| 项目 | 推荐做法 | 理由 |
|---|---|---|
| 账户类型 | 专用账号(nologin) | 避免用于交互登录 |
| 权限 | 只读查询为主 | 符合最小权限 |
| 密码策略 | 单独维护/可轮换 | 降低泄露风险 |
| 审计 | 清晰可追踪 | Ranger LDAP 查询日志可定位来源 |
提示
Bind DN 只负责“查目录”,不参与 Kerberos 票据,不建议复用业务账号。
# 三、Ambari 安装 Ranger 并配置 FreeIPA LDAP
这一节按 Ambari 向导步骤走,截图与参数一一对应。
# 3.1 进入 Ranger 安装向导
开始安装 Ranger:

一路 Next 到第四步配置页:

# 3.2 JDBC 信息(略过但要知道在做什么)
该步骤核心是让 Ranger Admin 能连接 DB(策略、用户同步元数据等都依赖 DB)。
| 项目 | 典型内容 | 说明 |
|---|---|---|
| JDBC URL | jdbc:mysql://... | DB 地址 |
| Driver | com.mysql.jdbc.Driver | 驱动类 |
| User/Pass | rangeradmin / *** | DB 账号 |
注意
JDBC 配置不正确会导致 Ranger Admin 初始化失败,但与 LDAP 配置是两条链路,不要混在一起排查。
# 3.3 RANGER USER INFO:COMMON CONFIGS(LDAP 连接)
进入 Ranger User Info,先配置 COMMON CONFIGS:

选择 LDAP/AD,并填写:
URL: ldaps://ipa.test.com:636
Bind DN: uid=rangerbind,cn=users,cn=accounts,dc=test,dc=com
Bind Password: rangerbind@2026
2
3
填写完成示例:

# 3.3.1 COMMON CONFIGS 参数解释
| 配置项 | 示例值 | 作用 |
|---|---|---|
| LDAP URL | ldaps://ipa.test.com:636 | 强制 SSL,避免明文 |
| Bind DN | uid=rangerbind,... | 用于登录 LDAP |
| Bind Password | rangerbind@2026 | Bind DN 的密码 |
| Base DN | dc=test,dc=com | 目录树根 |
提示
如果使用 ldaps,确保 Ranger 节点信任 FreeIPA CA(否则会出现证书校验问题)。
# 3.4 GROUP CONFIGS(组搜索,必须先开)
先配置组搜索的原因:Ranger 需要先能“找组”,才能把用户映射到组(权限几乎都按组来管)。
开启 Enable Group Search First:

推荐填写:
Group Member Attribute = member
Group Name Attribute = cn
Group Object Class = groupOfNames
Group Search Base = cn=groups,cn=accounts,dc=test,dc=com
Group Search Filter = (cn=*)
2
3
4
5
# 3.4.1 组搜索字段解读
| 字段 | 典型值 | 含义 |
|---|---|---|
| groupOfNames | groupOfNames | FreeIPA 常见组类型 |
| member | member | 组成员 DN 列表字段 |
| cn | cn | 组名称字段 |
| Search Base | cn=groups,... | 从这个路径开始找组 |
# 3.5 USER CONFIGS(用户搜索)
最后配置用户搜索,并勾选 Enable User Search:

推荐填写:
User Name Attribute = uid
User Object Class = inetOrgPerson
User Search Base = cn=users,cn=accounts,dc=test,dc=com
User Search Filter = (uid=*)
User Search Scope = sub
User Group Name Attribute = memberof, ismemberof
2
3
4
5
6
# 3.5.1 用户搜索字段解读
| 字段 | 典型值 | 说明 |
|---|---|---|
| uid | uid | FreeIPA 用户名字段 |
| inetOrgPerson | inetOrgPerson | 用户对象类 |
| memberof | memberof | 反向组关系字段 |
| sub | sub | 递归查子树 |
提示
memberOf 依赖目录端维护反向关系,有些环境字段名可能不同(本文按 FreeIPA 常见默认值)。
# 3.6 ADVANCED(高级 LDAP 参数)
Advanced LDAP Settings 只有选择 LDAP/AD 方式才会出现:

这里重点确认两点:
- 仍然使用 ldaps://
- 密码仍是
rangerbind@2026
继续下一步:

进入常规安装执行页:

# 四、HA 场景必踩坑:HTTP Principal 缺失与修复
开启 Ranger HA 时,Ambari 在创建 principal 阶段可能失败:
Failed to create principal, HTTP/ranger-ha.hadoop.com@TEST.COM
ipa: ERROR: The host 'ranger-ha.hadoop.com' does not exist to add a service to.
2
报错弹窗(截图 12/14):

# 4.1 根因解读:FreeIPA 的 service-add 依赖 host-add
FreeIPA 的规则:
- 先存在
host对象(Host Entry) - 才能在该 host 上挂
HTTP/<fqdn>service principal
HA 虚拟域名 ranger-ha.hadoop.com 往往不是实际主机名,因此 IPA 中默认不存在该 host entry。
# 4.2 修复入口
处理办法可参考
修复完成后回到 Ambari 继续安装/重试。
# 4.3 修复后安装结果
修复完成后再次执行安装流程,可看到任务正常推进:

最终成功界面:

- 03
- Ranger Admin 证书快速导入脚本02-15