TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装指导
    • 魔改分享
  • 高阶玩法

    • 实战 Kerberos
    • 实战 Ranger
  • 版本专题

    • 更新说明
    • BUG临时处理
  • 实验室

    • VIEW插件
    • JIRA速查
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 二开指导

    • 前端开发
    • 后端开发
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Kylin V10系列
    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 优化增强

    • 组件配置调优
  • 支持&共建

    • 蓝图愿景
    • 合作共建
    • 服务说明
登陆
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装指导
    • 魔改分享
  • 高阶玩法

    • 实战 Kerberos
    • 实战 Ranger
  • 版本专题

    • 更新说明
    • BUG临时处理
  • 实验室

    • VIEW插件
    • JIRA速查
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 二开指导

    • 前端开发
    • 后端开发
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Kylin V10系列
    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 优化增强

    • 组件配置调优
  • 支持&共建

    • 蓝图愿景
    • 合作共建
    • 服务说明
登陆
GitHub (opens new window)
  • 【方案一】自建 Kerberos 认证体系

  • 【方案二】FreeIPA认证体系——生产推荐

    • FreeIPA服务端初始化

      • FreeIPA Server 安装指导
        • 一、部署定位
          • 1.1 FreeIPA 在认证体系中的角色
          • 1.2 方案代码来源
        • 二、环境与参数准备
          • 2.1 创建 compose.yaml 与 .env
          • 2.2 .env 参数清单
          • 2.3 参数含义与规划建议
        • 三、Compose 编排与关键设计
          • 3.1 compose.yaml 内容
          • 3.2 host 网络模式说明
          • 3.3 cgroup 挂载与 systemd 依赖
          • 3.4 /data 持久化说明
        • 四、安装执行与日志观察
          • 4.1 启动容器
          • 4.2 查看安装日志
          • 4.3 日志阶段拆解
        • 五、安装完成与 Web 验证
          • 5.1 安装完成标志
          • 5.2 Web 控制台访问地址
          • 5.3 登录账号与密码说明
    • FreeIPA客户端初始化及Ambari开启IPA认证

    • 部分踩坑-问题发现

    • 部分踩坑-完美解决

    • 辅助测试

  • 其他优化技巧

  • 部分组件踩坑合集

  • 实战技巧

  • 其他技巧

  • 组件安装-Kerberos
  • 【方案二】FreeIPA认证体系——生产推荐
  • FreeIPA服务端初始化
JaneTTR
2026-02-12
目录

FreeIPA Server 安装指导Docker 方案

需要 ttr-release 版本 >= 2.2.3

Ambari 3.0.0 + Free IPA 部署与认证体系构建,支持 Kylin、Ubuntu、Rocky 系统等

# 一、部署定位

# 1.1 FreeIPA 在认证体系中的角色

FreeIPA 不是单点服务,而是一套认证中心组合,核心组件与职责如下:

组件 作用 说明
KDC Kerberos 票据签发 为客户端发放 TGT/TGS
LDAP 目录与账号存储 用户、组、principal 等元数据
DNS 域内解析 保障 FQDN 解析稳定一致
CA 证书签发 管理 HTTPS/LDAPS 等证书
Web UI 管理入口 https://<FQDN>/ipa/ui

适用场景

  • Ambari + Kerberos 集成联调
  • 测试环境快速搭建 KDC/LDAP/DNS
  • 无稳定 FreeIPA RPM 的发行版环境

# 1.2 方案代码来源

源代码在:

https://github.com/TtBigdata/ambari-env/tree/master/plugin/freeipa-server-docker
或 国内镜像
https://gitee.com/tt-bigdata/ambari-env/tree/master/plugin/freeipa-server-docker
1
2
3

image-20260212224748232

为什么优先推荐 “Compose + .env”?

  • 参数集中维护,避免反复改 YAML
  • 多环境复用更友好(测试/生产/不同网段)
  • 后续扩展 HA、备份、迁移更容易对齐

# 二、环境与参数准备

# 2.1 创建 compose.yaml 与 .env

首先我先创建 compose.yaml 文件 和 .env 文件。

image-20260212222356034

# 2.2 .env 参数清单

.env 文件内容如下:

# ===== 基础容器信息 =====
FREEIPA_IMAGE=quay.io/freeipa/freeipa-server:almalinux-10
CONTAINER_NAME=freeipa-server

# ===== IPA 主机信息 =====
IPA_FQDN=ipa.test.com
IPA_HOST_IP=192.168.3.155

# ===== 挂载与持久化 =====
CGROUP_MOUNT=/sys/fs/cgroup:/sys/fs/cgroup:rw
IPA_DATA_DIR=./data

# ===== DNS / 安装参数 =====
IPA_REALM=TEST.COM
IPA_DOMAIN=test.com
IPA_DNS=127.0.0.1
IPA_SERVER_IP=no-update

# ===== 密码=====
IPA_PASSWORD=Ttbigdata@2026
IPA_ADMIN_PASSWORD=Ttbigdata@2026
IPA_DS_PASSWORD=Ttbigdata@2026

# ===== healthcheck =====
HEALTHCHECK_CMD=systemctl is-active --quiet ipa.service
HEALTHCHECK_INTERVAL=30s
HEALTHCHECK_TIMEOUT=10s
HEALTHCHECK_RETRIES=3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

# 2.3 参数含义与规划建议

参数 作用 规则/建议
IPA_FQDN FreeIPA Server FQDN 必须可解析、与证书/访问一致
IPA_HOST_IP 宿主机 IP host 网络下用于 self-resolve
IPA_REALM Kerberos Realm 必须大写(如 TEST.COM)
IPA_DOMAIN DNS Domain 必须小写(如 test.com)
IPA_DATA_DIR 数据目录 建议磁盘充足、长期保留
IPA_SERVER_IP=no-update 禁止自动更新 DNS 到容器内部 IP host 网络场景更稳
IPA_ADMIN_PASSWORD Web 管理员 admin 密码 后续 Web 登录使用
IPA_DS_PASSWORD Directory Manager 密码 LDAP 管理口令,务必保存

必须注意

IPA_REALM / IPA_DOMAIN / IPA_FQDN 是三件套:后续集成 Ambari、发放 keytab、客户端 kinit,都依赖它们保持一致。

# 三、Compose 编排与关键设计

# 3.1 compose.yaml 内容

image-20260212222246400

compose.yaml 内容如下:

version: "3.8"
services:
  freeipa:
    image: ${FREEIPA_IMAGE}
    hostname: ${IPA_FQDN}
    container_name: ${CONTAINER_NAME}
    network_mode: host

    extra_hosts:
      - "${IPA_FQDN}:${IPA_HOST_IP}"

    volumes:
      - ${CGROUP_MOUNT}
      - ${IPA_DATA_DIR}:/data

    tmpfs:
      - /run
      - /var/cache
      - /tmp

    environment:
      - PASSWORD=${IPA_PASSWORD}
      - IPA_SERVER_IP=${IPA_SERVER_IP}
      - IPA_SERVER_HOSTNAME=${IPA_FQDN}

    dns:
      - ${IPA_DNS}

    command:
      - ipa-server-install
      - --unattended
      - --realm=${IPA_REALM}
      - --domain=${IPA_DOMAIN}
      - --hostname=${IPA_FQDN}
      - --setup-dns
      - --ds-password=${IPA_DS_PASSWORD}
      - --admin-password=${IPA_ADMIN_PASSWORD}
      - --auto-forwarders

    healthcheck:
      test: ["CMD", "bash", "-lc", "${HEALTHCHECK_CMD}"]
      interval: ${HEALTHCHECK_INTERVAL}
      timeout: ${HEALTHCHECK_TIMEOUT}
      retries: ${HEALTHCHECK_RETRIES}

    restart: unless-stopped
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

# 3.2 host 网络模式说明

项 说明
为什么用 network_mode: host Kerberos 强依赖 FQDN;DNS/LDAP/HTTPS 多端口;端口映射容易引入 FQDN 与实际服务地址不一致
风险 宿主机端口冲突需要提前检查
建议 用于测试/联调最省心;生产环境需配合更严格的网络规划

警告

如果用 bridge + ports 映射,常见问题是:客户端拿到的票据/URL 指向与实际访问不一致,最终表现为“能打开页面但认证失败/加入域失败/签发失败”。

# 3.3 cgroup 挂载与 systemd 依赖

配置 目的
/sys/fs/cgroup:/sys/fs/cgroup:rw FreeIPA 容器内部使用 systemd 管理 ipa.service,缺少 cgroup 容易导致安装或服务启动异常

# 3.4 /data 持久化说明

挂载 内容
./data:/data LDAP 数据、证书、Kerberos 相关数据、安装产物

注意

./data 不要轻易删除;删除后相当于“重装一套认证中心”,已有 principal、证书、目录数据都会丢失。

# 四、安装执行与日志观察

# 4.1 启动容器

然后执行:

docker-compose -f compose.yaml up -d
1

image-20260205203848118

# 4.2 查看安装日志

docker logs -f freeipa-server
1

image-20260212222959940

# 4.3 日志阶段拆解

阶段 主要动作 你在日志里会看到的关键词
CA 初始化 证书体系初始化 CA / cert
LDAP 初始化 目录结构创建 dirsrv / ldap
Realm 创建 Kerberos Realm 初始化 REALM / krb5kdc
DNS 配置 域解析与转发 named / DNS
admin 创建 管理员 principal admin / principal

提示

观察日志时,重点关注是否出现“失败重试/回滚/端口占用/解析失败”等关键字;这些通常是安装失败的根因。

# 五、安装完成与 Web 验证

# 5.1 安装完成标志

安装完毕以后就会如下图所示。

image-20260206122859297

# 5.2 Web 控制台访问地址

我这里叫 ipa.test.com,所以我浏览器直接访问:

https://ipa.test.com/ipa/ui/
1

image-20260212223645188

# 5.3 登录账号与密码说明

用户名 : admin

密码 : IPA_ADMIN_PASSWORD 填写的,我这里是 Ttbigdata@2026
1
2
3

image-20260212224248553

登录成功后页面如下:

image-20260212224314414

#FreeIPA#Kerberos#Docker#LDAP#KDC#DNS#Realm
Ambari 中关闭 Kerberos 认证流程详解
[Step1]-FreeIPA Client 安装与入域实战

← Ambari 中关闭 Kerberos 认证流程详解 [Step1]-FreeIPA Client 安装与入域实战→

最近更新
01
Ranger Admin LDAP 认证报 Bad credentials 分析
02-15
02
Ranger Admin LDAP 认证报 Bad credentials 处理
02-15
03
Ranger Admin 证书快速导入脚本
02-15
更多文章>
Theme by Vdoing | Copyright © 2017-2026 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式