This subdirectory contains the content for the [Packer Website](https://packer.io/).
This subdirectory contains the content for the [Packer documentation website](https://developer.hashicorp.com/packer/docs).
<!--
This readme file contains several blocks of generated text, to make it easier to share common information
@ -418,7 +418,7 @@ For plugins in separate repositories, additional configuration is required.
#### Setting up remote plugin docs
Some setup is required to include docs from remote plugin repositories on the [packer.io/docs](https://www.packer.io/docs) site.
Some setup is required to include docs from remote plugin repositories on the [developer.hashicorp.com/packer/docs](https://developer.hashicorp.com/packer) site.
1. The plugin repository needs to include a `docs.zip` asset in its release
2. The `packer` repository must have a corresponding entry in `website/data/docs-remote-plugins.json` which points to the plugin repository.
The Packer GitHub repository is configured to run a [Markdown Link Check](https://github.com/gaurav-nelson/github-action-markdown-link-check#github-action---markdown-link-check-%EF%B8%8F) on a nightly basis to check for potential broken links within the Packer documentation. All checks on master will be executed using the BASE_URL set to https://packer.io/.
The Packer GitHub repository is configured to run a [Markdown Link Check](https://github.com/gaurav-nelson/github-action-markdown-link-check#github-action---markdown-link-check-%EF%B8%8F) on a nightly basis to check for potential broken links within the Packer documentation. All checks on master will be executed using the BASE_URL set to https://developer.hashicorp.com.
There is also a GitHub action that will check any modified `website/content/**/*.mdx` files on new pull-requests. The link checker action for pull-requests will only run when there is a new Vercel deployment; checks will be executed against the Vercel deployment URL. If no deployment is made the check will run but will timeout after 3 minutes since it needs a valid Vercel deployment URL.
@ -526,7 +526,7 @@ The master configuration file for the markdown-link-checker is called `mlc_confi
The configuration helps with relative links in the documentation that will be valid once deployed, and configures a few ignored URLs which are valid but may not return a valid 200 HTTP response code due to permissions or DDoS protection settings on the domain.
**Potential False Negatives**
The link checker will prepend the BASEURL `https://packer.io/` to any relative links found within the documentation, which can be an issue when adding new `/docs` or `/guides` documents as the pages have not been deployed. To help mitigate this issue check the site preview to ensure newly added documentation pages work as expected.
The link checker will prepend the BASEURL `https://developer.hashicorp.com` to any relative links found within the documentation, which can be an issue when adding new `/packer/docs` or `/packer/guides` documents as the pages have not been deployed. To help mitigate this issue check the site preview to ensure newly added documentation pages work as expected.
[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.