32 lines
1.3 KiB
Plaintext
32 lines
1.3 KiB
Plaintext
---
|
|
description: |
|
|
This section describes the configuration language used to create Packer
|
|
templates.
|
|
page_title: Templates
|
|
---
|
|
|
|
# Packer Templates
|
|
|
|
Packer's behavior is determined by the Packer template, which consists of a
|
|
series of declarations and commands for Packer to follow. This template tells
|
|
Packer what plugins (builders, provisioners, post-processors) to use, how to
|
|
configure each of those plugins, and what order to run them in.
|
|
|
|
The template contains flexible variable injection tools, as well as built-in
|
|
functions to help you customize your builds.
|
|
|
|
Historically, Packer has used a JSON template for its configuration, but Packer
|
|
is transitioning to a new template configuration format that uses HCL2 -- the
|
|
same configuration language used by Terraform and HashiCorp's other products.
|
|
This format is more flexible, more modular, and more concise than the original
|
|
JSON template format. While the JSON format is still supported, certain
|
|
new features in the Packer core will only be implemented for the newer HCL
|
|
format. Please use the side bar to find documentation for the different
|
|
template formats.
|
|
|
|
From version **1.7.0**, HCL2 becomes officially the preferred way to write Packer
|
|
configuration(s).
|
|
|
|
If you need help upgrading a JSON template to an HCL template, check
|
|
our upgrade guide [here](/guides/hcl/from-json-v1).
|