[Packer](https://www.packer.io/) is a community tool that enables you to create identical machine images for multiple platforms from a single source template. A common use case is creating "golden images" that teams across an organization can use in cloud infrastructure.
Packer is a community tool that lets you to create identical machine images for multiple platforms from a single source template. People commonly use Packer to create golden images that teams across an organization can use in cloud infrastructure.
To install Packer and learn the standard Packer workflow, try the [Get Started tutorials](/packer/tutorials).
@ -69,16 +69,17 @@ The configuration allows you to specify which files comprise your artifact.
### Example Configuration
This minimal example:
You can use Packer to deploy HashiCorp Consul, which is a service discovery and service mesh solution. Refer to the [Consul website](https://www.hashicorp.com/en/products/consul) for additional information.
1. Spins up a cloned VMware virtual machine
2. Installs a [consul](https://www.consul.io/) release
3. Downloads the consul binary
4. Packages it into a `.tar.gz` file
5. Uploads it to S3.
In this example, Packer uses a minimal configuration to perform the following actions:
VMX is a fast way to build and test locally, but you can easily substitute
another builder.
1. Spins up a cloned VMware virtual machine
1. Installs a Consul release.
1. Downloads the Consul binary.
1. Packages Consul into a `.tar.gz` file.
1. Uploads Consul to S3.
VMX is a fast way to build and test locally, but you can substitute a different builder.
@ -94,7 +94,5 @@ this is soon going to be possible. So here "a.\*" will match nothing.
## Related
- A list of [community
builders](https://packer.io/community-tools#community-builders) is available.
- Create your own [custom builder](/packer/docs/plugins/creation/custom-builders) !
- Refer to the [community builders reference](/packer/docs/community-tools#community-builders) for information about builders maintained by the community.
- Refer to [Create Custom Builders](/packer/docs/plugins/creation/custom-builders) for instructions on how to create your own builders.
- The list of available builders can be found in the [builders](/packer/docs/builders)
section.
- Refer to the [builders reference overview](/packer/docs/builders) for information about Packer builders.
- A list of [community
builders](https://packer.io/community-tools#community-builders) is available.
- Refer to the [community builders reference](/packer/docs/community-tools#community-builders) for information about builders maintained by the community.
- Create your own [custom builder](/packer/docs/plugins/creation/custom-builders) !
- Refer to [Create Custom Builders](/packer/docs/plugins/creation/custom-builders) for instructions on how to create your own builders.
@ -5,8 +5,7 @@ description: The `consul` function retrieves secrets from HashiCorp Consul KV st
# `consul_key` Function
[Consul](https://www.consul.io/) keys can be used within your template using the
`consul_key` function.
Retrieves secrets from a HashiCorp Consul KV store. You can use the `consul_key` function secrets to add them to your template. Refer to the [Consul documentation](/consul/docs/dynamic-app-config/kv) for additional information about the Consul KV.
You can either use this function in a locals block or directly inline where you
@ -5,10 +5,9 @@ description: The `vault` function retrieves secrets from HashiCorp Vault KV stor
# `vault` Function
Secrets can be read from [Vault](https://www.vaultproject.io/) and used within
your template as user variables. the `vault` function is available _only_
within the default value of a user variable, allowing you to default a user
variable to a vault secret.
Retrieves secrets from a HashiCorp Vault KV store. Packer can read secrets from and add them to your template as user variables. The `vault` function is available only within the default value of a user variable, allowing you to default a user variable to a vault secret.
Refer to the [Vault documentation](/vault/docs/commands/kv) for additional information about the Vault KV store.
@ -121,10 +121,8 @@ environment variables, as specified in the
## Vault variables
Secrets can be read from [Vault](https://www.vaultproject.io/) and used within
your template as user variables. the `vault` function is available _only_
within the default value of a user variable, allowing you to default a user
variable to a vault secret.
Packer can read secrets read from HashiCorp Vault and add them to your template as user variables. You can only use the `vault` function
in the default value of a user variable. This allows you to default a user variable to a Vault secret. Refer to the [Vault documentation](https://developer.hashicorp.com/vault/docs/secrets) for additional information about integrating with Vault secrets engines.
@ -44,4 +44,4 @@ This page documents terminology we use throughout this documentation that have a
artifact. They perform the major work of making the artifact contain useful
software. Example provisioners include shell scripts, Chef, Puppet, etc.
- _Templates_ are either [HCL](https://packer.io/templates/hcl_templates) or JSON files that define one or more builds by configuring the various components of Packer. Packer reads a template and uses the information to create multiple machine images in parallel.
- _Templates_ are files that define one or more builds by configuring various Packer components. Packer reads a template and uses the information to create multiple machine images in parallel. You can write templates in HCL or JSON files format.
@ -12,10 +12,8 @@ and used locally in development, like is often done with VirtualBox images with
Vagrant. In most other cases, the new image will be used to provision new
infrastructure.
[Terraform](https://www.terraform.io/) is a community tool that is ideal for
provisioning new infrastructure with images generated by Packer, and [Terraform
Enterprise](https://www.hashicorp.com/products/terraform/) is the best way to
perform automated Terraform runs.
You can use [Terraform](/terraform/cli) to provision new infrastructure with images generated by Packer. When working with teams, you can use [HCP Terraform](/terraform/cloud-docs) or [Terraform
Enterprise](/terraform/enterprise) to automate Terraform runs.