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
2
3

为什么优先推荐 “Compose + .env”?
- 参数集中维护,避免反复改 YAML
- 多环境复用更友好(测试/生产/不同网段)
- 后续扩展 HA、备份、迁移更容易对齐
# 二、环境与参数准备
# 2.1 创建 compose.yaml 与 .env
首先我先创建 compose.yaml 文件 和 .env 文件。

# 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
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 内容

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
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

# 4.2 查看安装日志
docker logs -f freeipa-server
1

# 4.3 日志阶段拆解
| 阶段 | 主要动作 | 你在日志里会看到的关键词 |
|---|---|---|
| CA 初始化 | 证书体系初始化 | CA / cert |
| LDAP 初始化 | 目录结构创建 | dirsrv / ldap |
| Realm 创建 | Kerberos Realm 初始化 | REALM / krb5kdc |
| DNS 配置 | 域解析与转发 | named / DNS |
| admin 创建 | 管理员 principal | admin / principal |
提示
观察日志时,重点关注是否出现“失败重试/回滚/端口占用/解析失败”等关键字;这些通常是安装失败的根因。
# 五、安装完成与 Web 验证
# 5.1 安装完成标志
安装完毕以后就会如下图所示。

# 5.2 Web 控制台访问地址
我这里叫 ipa.test.com,所以我浏览器直接访问:
https://ipa.test.com/ipa/ui/
1

# 5.3 登录账号与密码说明
用户名 : admin
密码 : IPA_ADMIN_PASSWORD 填写的,我这里是 Ttbigdata@2026
1
2
3
2
3

登录成功后页面如下:

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