运行bundle exec kitchen converge报terraform驱动加载错误如何解决
问题定位与解决方案
根因说明
该报错90%以上为kitchen-terraform版本与Terraform 1.0+的兼容性问题:旧版kitchen-terraform(低于6.0版本)未适配Terraform 0.15及以后的版本号输出格式,解析版本时拿到空值后调用size方法触发异常。
定位步骤
- 执行
gem list kitchen-terraform查看当前安装的kitchen-terraform版本,若版本低于6.0即可确认是兼容性问题 - 执行
kitchen diagnose --all检查driver配置块,确认terraform二进制路径配置正确,不存在路径为空的情况 - 查看
.kitchen/logs/kitchen.log的完整报错栈,确认错误触发点是否为terraform版本号解析逻辑
修复方案
- 方案1(推荐):升级kitchen-terraform到6.0及以上版本,该版本正式支持Terraform 1.0+。修改Gemfile中的kitchen-terraform版本约束为
gem 'kitchen-terraform', '~> 6.0',之后执行bundle update kitchen-terraform完成升级即可 - 方案2(环境受限场景):将Terraform版本降级到0.14.x,该版本和旧版kitchen-terraform兼容性良好
- 配置校验:修复完成后先执行
terraform version确认Terraform运行正常,再执行bundle exec kitchen list验证driver可以正常加载,无报错后再执行bundle exec kitchen converge操作
内容的提问来源于stack exchange,提问作者Rubans
相关产品推荐
相关产品推荐

