TT Bigdata TT Bigdata
首页
  • 部署专题

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

    • 安装指导
    • 开启 Kerberos
    • 魔改分享
  • 版本专题

    • 更新说明
    • 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
    • 魔改分享
  • 版本专题

    • 更新说明
    • 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)
  • 步步为营

  • 踩坑合集

    • Test Kerberos Client报错:Failed to kinit
    • KERBEROS SERVICE CHECK 报错
    • Ambari开启Kerberos认证加密类型错误
    • [开启Kerberos]-Solr启动失败处理
    • [开启Kerberos]-Kafka启动失败处理
    • Kerberos 客户端模板渲染异常处理
      • 一、问题现象
      • 二、问题原因
      • 三、快速解决方案(推荐)
      • 四、源码级修复方案(长期解决)
    • Kafka 启动兼容 Kerberos 源码级修改
    • Kerberos 客户端模板渲染异常处理
  • 组件安装-Kerberos
  • 踩坑合集
JaneTTR
2025-10-31
目录

Kerberos 客户端模板渲染异常处理临时处理

温馨提示

本文内容在使用 ttr-2.2.0 版本之前,开启Kerberos后才会遇到。 后续版本已经做了处理,无需关注! 如果在部署、二开过程中,遇到任何问题可以联系作者。 👉 联系入口在此页 (opens new window)

# 一、问题现象

在启用 Kerberos 客户端安装 时,执行渲染 krb5-conf template 阶段报错。 日志显示模板变量渲染失败,无法生成 krb5.conf 文件。

image-20251029091546551

问题出现在旧版模板使用的 Jinja2 写法在 Python3 环境中不兼容, 触发异常导致任务终止。

# 二、问题原因

旧模板逻辑在 Python2 环境下可以正常工作,但在 Python3 中存在以下问题:

  • 模板中使用的 split、trim 等函数在部分未定义变量时会报类型错误;
  • 模板内条件判断与缩进处理不兼容 Python3 的严格语法;
  • 某些空值默认处理(如 |default('', true))未定义,渲染时中断。

这会导致 krb5.conf 模板渲染中断,Ambari 客户端任务失败。

# 三、快速解决方案(推荐)

打开 Ambari Web → Kerberos → krb5-conf template, 将模板内容替换为以下版本即可恢复正常。

[libdefaults]
  forwardable = true
  default_realm = {{ realm }}
  ticket_lifetime = 24h
  dns_lookup_realm = false
  dns_lookup_kdc = false
  default_ccache_name = /tmp/krb5cc_%{uid}
  #default_tgs_enctypes = {{ encryption_types }}
  #default_tkt_enctypes = {{ encryption_types }}
  {% if force_tcp %}
  udp_preference_limit = 1
  {% endif %}

{% if domains %}
[domain_realm]
{% for domain in domains.split(',') %}
  {{ domain|trim() }} = {{ realm }}
{% endfor %}
{% endif %}

[logging]
  default = FILE:/var/log/krb5kdc.log
  admin_server = FILE:/var/log/kadmind.log
  kdc = FILE:/var/log/krb5kdc.log

[realms]
  {{ realm }} = {
{% if master_kdc %}
    master_kdc = {{ master_kdc|trim() }}
{% endif %}

{% set _kdc_hosts = kdc_hosts|default('', true)|trim() %}
{% if _kdc_hosts %}
{% set kdc_host_list = _kdc_hosts.split(',') %}
{% if kdc_host_list and kdc_host_list|length > 0 %}
    admin_server = {{ admin_server_host|default(kdc_host_list[0]|trim(), True) }}
{% if kdc_host_list %}
{% if master_kdc and (master_kdc not in kdc_host_list) %}
    kdc = {{ master_kdc|trim() }}
{% endif %}
{% for kdc_host in kdc_host_list %}
{% if kdc_host|trim() %}
    kdc = {{ kdc_host|trim() }}
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
  }
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
47
48
49

保存后,重新执行 Kerberos 客户端安装 即可正常生成配置文件。

image-20251105191354425

# 四、源码级修复方案(长期解决)

若你希望从源码层彻底修复此问题,可参考以下文章:

🔗 Ambari 安装 Kerberos 客户端失败 — 源码级修改

#Ambari#Kerberos#krb5.conf#Python3兼容#模板渲染#KDC#kerberos-client#Ambari模板
[开启Kerberos]-Kafka启动失败处理
Kafka 启动兼容 Kerberos 源码级修改

← [开启Kerberos]-Kafka启动失败处理 Kafka 启动兼容 Kerberos 源码级修改→

最近更新
01
Ambari开启Kerberos认证加密类型错误 Kylin V10
11-05
02
KERBEROS SERVICE CHECK 报错
11-04
03
Test Kerberos Client报错:Failed to kinit
11-04
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式