mirror of
https://github.com/hashicorp/packer.git
synced 2026-04-26 00:31:18 -04:00
76 lines
3.6 KiB
Text
76 lines
3.6 KiB
Text
---
|
|
description: |
|
|
The `packer validate` command validates the syntax and
|
|
configuration in a Packer template, helping you prevent errors.
|
|
page_title: packer validate command reference
|
|
---
|
|
|
|
⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
|
|
> [!IMPORTANT]
|
|
> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com.
|
|
⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
|
|
|
|
# `packer validate` command reference
|
|
|
|
The `packer validate` Packer command is used to validate the syntax and
|
|
configuration of a [template](/packer/docs/templates). The command will
|
|
return a zero exit status on success, and a non-zero exit status on failure.
|
|
Additionally, if a template doesn't validate, any error messages will be
|
|
outputted.
|
|
|
|
Example usage:
|
|
|
|
```shell-session
|
|
$ 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.
|
|
```
|
|
|
|
## Options
|
|
|
|
- `-syntax-only` - Only the syntax of the template is checked. The
|
|
configuration is not validated.
|
|
|
|
- `-evaluate-datasources` - Evaluate all data sources when validating a template.
|
|
This is only valid on HCL2 templates, since JSON templates do not feature
|
|
datasources, this option will be ignored.
|
|
|
|
~> **Warning:** Data sources may rely on external services for fetching data,
|
|
which can incur some costs at validation if the services being contacted are
|
|
billing per operation.
|
|
|
|
- `-except=foo,bar,baz` - Validates all the builds except those with the
|
|
comma-separated names. In legacy JSON templates, build names default to the
|
|
types of their builders (e.g. `docker` or
|
|
`amazon-ebs` or `virtualbox-iso`), unless a specific `name` attribute is
|
|
specified within the configuration. In HCL2 templates, the "name" is the
|
|
source block's "name" label, unless an in-build source definition adds the
|
|
"name" configuration option.
|
|
|
|
- `-no-warn-undeclared-var` - Silence warnings when the variable definition
|
|
file contains variable assignments for undeclared variables. This can occur
|
|
when using a var-file that contains a large amount of unused variables for a
|
|
given HCL2 template. For HCL2 template defining a value for a variable in a
|
|
var-file is not enough on its own for Packer to function, as there also needs
|
|
to be a variable block definition in the template files `pkr.hcl` for the
|
|
variable. By default `packer validate` will warn when a var-file contains one
|
|
or more undeclared variables.
|
|
|
|
- `-only=foo,bar,baz` - Only validate the builds with the given comma-separated
|
|
names. In legacy JSON templates, build names default to the
|
|
types of their builders (e.g. `docker` or
|
|
`amazon-ebs` or `virtualbox-iso`), unless a specific `name` attribute is
|
|
specified within the configuration. In HCL2 templates, the "name" is the
|
|
source block's "name" label, unless an in-build source definition adds the
|
|
"name" configuration option.
|
|
|
|
- `-machine-readable` Sets all output to become machine-readable on stdout.
|
|
Logging, if enabled, continues to appear on stderr.
|
|
|
|
- `-var` - Set a variable in your Packer template. This option can be used
|
|
multiple times. This is useful for setting version numbers for your build.
|
|
|
|
- `-var-file` - Set template variables from a file.
|