validate
命令
packer validate
命令被用于验证模板的语法和配置。该命令将在成功时返回零值退出,在失败时返回非零值退出。此外,如果模板未通过验证,则会输出所有的错误消息。
用法示例:
$ packer validate my-template.pkr.hcl
Template validation failed. Errors are shown below.
Errors validating build 'vmware'. 1 error(s) occurred:
* Either a path or inline script must be specified.
选项
-syntax-only
- 只检查模板的语法,不验证配置。-evaluate-datasources
- 在验证模板时读取所有数据源。这只针对 HCL2 模板有效,因为 JSON 模板没有数据源,因此将忽略此选项。 警告:数据源可能依赖于外部服务来获取数据,如果所调用的服务涉及计费,可能会在验证时产生一些成本。-except=foo,bar,baz
- 在验证时排除具有给定逗号分隔名称的构建。在遗留的 JSON 格式模板中,构建的默认名称为其构建器的类型(例如docker
或amazon-ebs
或virtualbox-iso
),除非是在配置中指定了特定的名称属性。在 HCL2 模板中,“名称”是source
代码块的name
标签,除非构建中source
的定义添加了name
配置选项。-no-warn-on-undeclared-var
- 当变量定义文件包含未声明变量的变量赋值时,不发出警告。当传递给 HCL2 模板的变量文件含有大量未在模板中声明的变量时该选项将很有用。如果用 HCL2 模板定义构建,光是在变量文件中设置一个变量值不足以让其生效,因为还需要在模板文件pkr.hcl
中为变量定义一个对应的variable
块。默认情况下,当变量文件包含一个或多个未声明的变量时,packer validate
会发出警告。-only=foo,bar,baz
- 在验证时只验证具有给定逗号分隔名称的构建。在遗留的 JSON 格式模板中,构建的默认名称为其构建器的类型(例如docker
或amazon-ebs
或virtualbox-iso
),除非是在配置中指定了特定的名称属性。在 HCL2 模板中,“名称”是source
代码块的name
标签,除非构建中source
的定义添加了name
配置选项。-machine-readable
将所有输出设置为机器可读的标准输出。日志记录(如果启用)会继续出现在标准错误流上。-var
- 设置一个 Packer 模板定义的变量的值。该选项可以多次使用。该功能在设置构建的版本号时很有用。-var-file
- 指定一个变量文件。