amazon-web-services - Packer 无法验证 jenkins 作业中的 hcl2 模板
问题描述
我正在努力构建我创建的 json 模板工作正常的打包程序管道,但根据打包程序的建议,我正在努力将其升级到 hcl2 模板。当我运行 hcl2_upgrade 命令时。我看到一个 json 模板被转换为 .pkr.hcl 模板,但是在运行它时。我已经按照打包程序文档中的建议对模板进行了一些自定义。通过 jenkins job 执行管道时,它给了我错误。
template_pqr.json.pkr.hcl:下面是我的模板的起始行,它会抛出错误
variable "ami_name" {
type = string
default = "abc"
}
我的詹金斯文件是
stage('packer template validation') {
steps{
sh label: 'Validate Template', script: "packer validate template_pqr.json.pkr.hcl"
}
}
stage('AMI creation') {
steps{
withAWS(credentials: 'credent') {
sh label: 'build template_pqr ', script: "packer build template_pqr.json.pkr.hcl"
}
}
}
}
错误:
packer validate template_pqr.json.pkr.hcl
Failed to parse template: Error parsing JSON: invalid character 'v' looking for beginning of value
At line 2, column 2 (offset 2):
1:
2: v
解决方案
当该validate
命令针对版本 1.6 之前的 Packer 版本中的 HCL2 文件时,将引发该错误消息。这是 Packer 的版本,它首先引入了对validate
命令的 HCL2 支持(即使该build
命令在 1.5 中受支持)。您需要更新您的 Jenkins Pipeline 代理以包含安装的 Packer 版本,该版本至少为 1.6.0。我会推荐 1.6.x 的最新版本,因为 1.7 引入了插件分离,您的模板和配置可能不支持。
推荐阅读
- maven - maven-metadata.xml 没有在工件中自动生成
- python - 确定分类问题的最佳算法
- c++ - 将对象添加到指针数组的函数
- node.js - 如何使用节点 js 在外部函数中返回和打印
- android-studio - Flutter 不保存项目的最后一次构建
- django - 由 Django 从 json 发布内容
- django - Django:当传递带有 - 的字符串时,后面的任何东西 - 都会被丢弃
- spring - 为什么要使用 SpringKafka 模板代替现有的 Kafka Producer Consumer api?
- ssh - 连接被拒绝:ssh 到无头 Raspberry Pi 3 b+
- java - Mockito 方法存根返回先前测试的存根值