---
description: |
  The `packer validate` Packer command is used to validate the syntax and
  configuration of a template. 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.
page_title: packer validate - Commands
sidebar_title: <tt>validate</tt>
---

# `validate` Command

The `packer validate` Packer command is used to validate the syntax and
configuration of a [template](/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.

- `-except=foo,bar,baz` - Validates all the builds except those with the
  comma-separated names. Build names by default are the names of their
  builders, unless a specific `name` attribute is specified within the configuration.

- `-only=foo,bar,baz` - Only validate the builds with the given comma-separated
  names. Build names by default are the names of their builders, unless a
  specific `name` attribute is specified within the configuration.

- `-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.
