* Update validate command to use FixConfig for checking against known fixers * Update validation command flag docs * Add ConfigFixer method to PackerHandler Interface * Implement ConfigFixer interface in PackerConfig * Remove all stdout messaging (i.e calls to c.Ui.Say) in the validate command. The command will only display hcl.Diagnotic messaging when there is an error or warning. HCL2 Configs ``` ⇶ packer validate docker_centos_shell_provisioner.pkr.hcl ``` JSON Configs ``` ⇶ packer validate vmware-iso_ubuntu_minimal/vmware-iso_ubuntu_minimal.json Error: Failed to prepare build: "vmware-iso" 1 error occurred: * Deprecated configuration key: 'iso_checksum_type'. Please call `packer fix` against your template to update your template to be compatable with the current version of Packer. Visit https://www.packer.io/docs/commands/fix/ for more detail. Warning: Fixable configuration found. You may need to run `packer fix` to get your build to run correctly. See debug log for more information. map[string]interface{}{ "builders": []interface{}{ map[string]interface{}{ ... // 3 identical entries "guest_os_type": string("ubuntu-64"), "http_directory": string("http"), - "iso_checksum": string("946a6077af6f5f95a51f82fdc44051c7aa19f9cfc5f737954845a6050543d7c2"), + "iso_checksum": string("sha256:946a6077af6f5f95a51f82fdc44051c7aa19f9cfc5f737954845a6050543d7c2"), - "iso_checksum_type": string("sha256"), "iso_url": string("http://old-releases.ubuntu.com/releases/14.04.1/ubuntu-14.04.1-server-amd64.iso"), "shutdown_command": string("echo 'vagrant' | sudo -S shutdown -P now"), ... // 4 identical entries }, }, } ```
48 lines
1.7 KiB
Plaintext
48 lines
1.7 KiB
Plaintext
---
|
|
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.
|
|
layout: docs
|
|
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.json
|
|
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.
|
|
|
|
- `-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.
|