为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
【概述】在现有的V3.0.4版本基础上,使用Ansible方式,升级到V4.0.0时,提示 ‘KeyError: ‘‘deploy_dir’’’
【背景】现有TiDB集群中,TiKV存在单机多实例部署情况,使用Ansible方式,升级到V4.0.0。
【现象】使用4.0.0的ansible包进行deploy时,提示如下信息:
4.0.0的 inventory.ini 中关于TiKV配置信息如下:
【业务影响】
【TiDB 版本】当前版本V3.0.4,升级到V4.0.0
【附件】
-
TiUP Cluster Display 信息
-
TiUP Cluster Edit Config 信息
-
TiDB- Overview 监控
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
spc_monkey
(carry@pingcap.com)
2
这个看起来没什么问题
1、建议看看 inventory_check.py 62 是什么内容
2、检查一下 ansible 版本,和官网要求是否相符
3、可以尝试把 deploy_dir用引号 引起来
1、建议看看 inventory_check.py 62 是什么内容
62行是调用“parse_inventory”这个方法,在该方法内的24行,是获取tidb的deploy_dir,具体如下所示:
2、检查一下 ansible 版本,和官网要求是否相符
ansible的版本是2.5.0,用tidb的v3.0.4版本的ansible操作的是没问题的,所以ansible应该是OK的
3、可以尝试把 deploy_dir用引号 引起来
我分别尝试了将deploy_dir用单引号和双引号括起来,没有变化,报同样的错误
问题已经找到。
因为我存在单机双实例部署tikv的情况,故在 inventory.ini 的[all:vars]下没有指定统一默认的deploy_dir,而是根据标签指定了tikv的deploy_dir,如下图所示:
所以在升级时,因[all:vars]下没有统一的deploy_dir,所以需要在 [tidb_servers] 和 [pd_servers] 下指定具体的deploy_dir(在部署时,默认部署到/home/tidb/deploy目录下),如下图所示:
修改后,即可向下执行操作
1 个赞
spc_monkey
(carry@pingcap.com)
6
麻烦把你的那个点击标记有用,有助于其他人遇到类似问题,快速搜到
system
(system)
关闭
7
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。