AnsibleError: template error while templating string

来源:4-3 用kubespray一键部署生产级k8s集群

慕九州9465493

2022-05-05

图片描述

写回答

1回答

刘果国

2022-05-06

模板解析错误,看看源文件有没有被修改过,没问题的话从版本兼容方面入手

0
2
qq_慕村8261554
回复
慕九州9465493
回复 慕九州9465493:我也遇到这个问题了,模板用的是 jinja2 ,应该就是这个的版本问题。以下是我分析这个问题的过程。 虽然task path: /opt/kubespray-2.15.0/roles/kubernetes/node/tasks/kubelet.yml:21 提示的是 kubelet.yml 21行的问题,但实际上这一行是执行的是 roles/kubernetes/templates/kubelet.env.j2 这个文件,这个文件用的就是 jinja2 模板。就是这个文件的语法和我用yum下载的jinja2不兼容导致的。 我的解决方法是看看 requirements.txt 中依赖的程序中有没有用yum安装的,有的话全部用yum卸载,然后重新执行 pip3.6 install -r requirements.txt 安装依赖程序。 我是因为执行 ansible-playbook 是提示找不到命令,就自己手动用yum安装了一个,导致了兼容性问题。这次我不用yum安装了,而是直接搜索 ansible-playbook 文件,发现在 /usr/local/bin 下有这个命令。这说明其实 pip3.6 install -r requirements.txt 安装时已经把命令安装到 /usr/local/bin 下了,是path环境变量没有这个目录,然后把这个目录加入到 PATH 环境变量中再执行就可以了。 这是我的排查过程,不一定和你一样。但导致问题的原因应该大同小异,就是老师说的版本兼容问题,而且是jinja2的兼容问题。在安装过程中要确保依赖程序的版本确实都是使用的 requirements.txt 中标注的。
2024-06-07
共2条回复

Kubernetes生产落地全程实践

一个互联网公司落地Kubernetes全过程点点滴滴

2293 学习 · 2216 问题

查看课程