Skip to content

Commit

Permalink
Merge pull request #13286 from hashicorp/docs/packer-seo-fy2025q4 (#1…
Browse files Browse the repository at this point in the history
…3288)

Docs/packer seo fy2025q4
  • Loading branch information
trujillo-adam authored Feb 5, 2025
1 parent 02d6271 commit b9829a1
Show file tree
Hide file tree
Showing 200 changed files with 1,009 additions and 1,302 deletions.
20 changes: 14 additions & 6 deletions website/content/docs/builders/community-supported.mdx
Original file line number Diff line number Diff line change
@@ -1,14 +1,22 @@
---
description: |
Community-maintained builders are not part of the core Packer binary, but
can run alongside Packer with minimal extra effort.
page_title: Community - Builders
Community-supported builders are developed and maintained by third-parties and not HashiCorp. Use them with Packer to extend Packer functionality.
page_title: Community-supported builders
---

# Community Builders
# Community-supported builders

The following builders are developed and maintained by various members of the
Packer community, not by HashiCorp. For more information on how to use community
builders, see our docs on [extending Packer](/packer/docs/plugins/creation).
builders, refer to our docs on [extending Packer](/packer/docs/plugins/creation).

@include 'builders/community_builders.mdx'
- ARM builders

- [packer-plugin-arm-image](https://github.com/solo-io/packer-plugin-arm-image): Lets you extend onto existing system images.
- [packer-builder-arm](https://github.com/mkaczanowski/packer-builder-arm): Lets you extend or build new images with a variety of options, such as custom partition tables.

- [Exoscale builder](https://github.com/exoscale/packer-plugin-exoscale) - Creates Exoscale custom templates based on a compute instance snapshot.

- [Citrix XenServer/Citrix Hypervisor](https://github.com/xenserver/packer-builder-xenserver) - Plugin for creating [Citrix XenServer/Citrix Hypervisor](https://xenserver.org/) images from an ISO image or from an existing template.

- [XCP-NG/Citrix XenServer/Citrix Hypervisor/Updated Fork](https://github.com/ddelnano/packer-plugin-xenserver) - Plugin for creating [XCP-NG/Citrix XenServer/Citrix Hypervisor](https://xcp-ng.org/) images from an ISO image or from an existing template. This is a fork of the orginal and reccomended by the developers of XCP-NG.
15 changes: 0 additions & 15 deletions website/content/docs/builders/custom.mdx

This file was deleted.

19 changes: 7 additions & 12 deletions website/content/docs/builders/file.mdx
Original file line number Diff line number Diff line change
@@ -1,23 +1,18 @@
---
description: |
The file Packer builder is not really a builder, it just creates an artifact
from a file. It can be used to debug post-processors without incurring high
wait times.
page_title: File - Builders
The `file` builder creates an artifact from a file. Use the `file` builder to debug post-processors without incurring long wait times.
page_title: file builder reference
---

<BadgesHeader>
<PluginBadge type="official" />
</BadgesHeader>

# File Builder
# `file` builder

Type: `file`
Artifact BuilderId: `packer.file`
The `file` builder creates an artifact from a file. You can use it to debug post-processors without incurring long wait times.

The `file` Packer builder is not really a builder, it just creates an artifact
from a file. It can be used to debug post-processors without incurring high
wait times.
Artifact `BuilderId`: `packer.file`

## Basic Example

Expand Down Expand Up @@ -60,12 +55,12 @@ described.

Any [communicator](/packer/docs/templates/legacy_json_templates/communicator) defined is ignored.

### Required:
### Required

- `target` (string) - The path for the artifact file that will be created. If
the path contains directories that don't exist, Packer will create them, too.

### Optional:
### Optional

You can only define one of `source` or `content`. If none of them is defined
the artifact will be empty.
Expand Down
17 changes: 8 additions & 9 deletions website/content/docs/builders/index.mdx
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
---
description: |
Builders are responsible for creating machines and generating images from them
for various platforms.
page_title: Builders
Builders create machines and generate images from them for various platforms. Learn about the types of builders you can use in your Packer templates.
page_title: Builders overview
---

# Builders
# Builders overview

Builders create machines and generate images from those machines for various platforms. Packer also has some builders that perform helper tasks, like running provisioners.
Builders create machines and generate images from those machines for various platforms. Some builders in Packer perform helper tasks, such as running provisioners.

Packer has the following types of builders:

- [Plugin](/packer/plugins): Each plugin has its own associated set of builders. For example, there are separate builders for EC2, VMware, VirtualBox, etc.
- [File](/packer/docs/builders/file): The `file` builder creates an artifact from a file.
- [Null](/packer/docs/builders/null): The `null` builder sets up an SSH connection and runs the provisioners.
- [Plugins](/packer/plugins): Plugins that you install have their own associated set of builders. For example, EC2, VMware, and VirtualBox use their own separate sets of builders.
- [`file`](/packer/docs/builders/file): The `file` builder creates an artifact from a file.
- [`null`](/packer/docs/builders/null): The `null` builder sets up an SSH connection and runs the provisioners.
- [Custom](/packer/docs/plugins/creation/custom-builders): You can write new builders for new or existing platforms.
- [Community-Supported](/packer/docs/builders/community-supported): The Packer community develops and maintains builders for several additional platforms.
- [Community-supported](/packer/docs/builders/community-supported): The Packer community develops and maintains builders for several additional platforms.

Refer to the [`source`](/packer/docs/templates/hcl_templates/blocks/source) block documentation to learn more about configuring builders in the Packer templating language.

Expand Down
16 changes: 4 additions & 12 deletions website/content/docs/builders/null.mdx
Original file line number Diff line number Diff line change
@@ -1,24 +1,16 @@
---
description: |
The null Packer builder is not really a builder, it just sets up an SSH
connection and runs the provisioners. It can be used to debug provisioners
without incurring high wait times. It does not create any kind of image or
artifact.
page_title: Null - Builders
The `null` builder creates an SSH connection and runs provisioners. Use the `null` builder to debug provisioners without incurring long wait times.
page_title: null builder reference
---

<BadgesHeader>
<PluginBadge type="official" />
</BadgesHeader>

# Null Builder
# `null` builder

Type: `null`

The `null` Packer builder is not really a builder, it just sets up an SSH
connection and runs the provisioners. It can be used to debug provisioners
without incurring high wait times. It does not create any kind of image or
artifact.
The `null` builder sets up an SSH connection and runs provisioners. You can use it to debug provisioners without incurring long wait times. It does not create a images or artifacts.

## Basic Example

Expand Down
7 changes: 2 additions & 5 deletions website/content/docs/commands/build.mdx
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
---
description: |
The `packer build` command takes a template and runs all the builds within it
in order to generate a set of artifacts. The various builds specified within a
template are executed in parallel, unless otherwise specified. And the
artifacts that are created will be outputted at the end of the build.
The `packer build` command builds all of the artifacts defined in a template. Builds can run in parallel or sequentially.
page_title: packer build - Commands
---

# `build` Command
# `packer build` command reference

The `packer build` command takes a template and runs all the builds within it
in order to generate a set of artifacts. The various builds specified within a
Expand Down
7 changes: 3 additions & 4 deletions website/content/docs/commands/console.mdx
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
---
description: |
The `packer console` command allows you to experiment with Packer variable
interpolations.
page_title: packer console - Commands
The `packer console` command starts an interactive console, letting you experiment with Packer variable interpolations.
page_title: packer console command reference
---

# `console` Command
# `packer console` command reference

The `packer console` command allows you to experiment with Packer variable
interpolations. You may access variables in the Packer config you called the
Expand Down
14 changes: 6 additions & 8 deletions website/content/docs/commands/fix.mdx
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
---
description: |
The `packer fix` command takes a template and finds backwards incompatible
parts of it and brings it up to date so it can be used with the latest version
of Packer. After you update to a new Packer release, you should run the fix
command to make sure your templates work with the new release.
page_title: packer fix - Commands
The `packer fix` command updates backward incompatible templates for the running version of Packer.
page_title: packer fix command reference
---

# `fix` Command
# `packer fix` command reference

-> **Note** This command is not available on HCL2 templates yet, it will be added when we need to introduce the first 'fix'.

The `packer fix` command takes a template and finds backwards incompatible
The `packer fix` command takes a template and finds backward incompatible
parts of it and brings it up to date so it can be used with the latest version
of Packer. After you update to a new Packer release, you should run the fix
command to make sure your templates work with the new release.

-> **JSON template-only command**: You cannot use the `packer fix` command to update HCL2 templates.

The fix command will output the changed template to standard out, so you should
redirect standard out using standard OS-specific techniques if you want to save it
to a file. For example, on Linux systems, you may want to do this:
Expand Down
7 changes: 3 additions & 4 deletions website/content/docs/commands/fmt.mdx
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
---
description: |
The `packer fmt` Packer command is used to format HCL2
configuration files to a canonical format and style.
page_title: packer fmt - Commands
The `packer fmt` Packer command formats HCL2 configuration files to a canonical format and style to help you prevent coding errors.
page_title: packer fmt command reference
---

# `fmt` Command
# `packer fmt` command reference

The `packer fmt` Packer command is used to format HCL2 configuration files to
a canonical format and style. JSON files (.json) are not modified. This command
Expand Down
23 changes: 10 additions & 13 deletions website/content/docs/commands/hcl2_upgrade.mdx
Original file line number Diff line number Diff line change
@@ -1,23 +1,20 @@
---
description: |
The `packer hcl2_upgrade` Packer command is used to transpile a JSON
configuration template to its formatted HCL2 counterpart. The command will
return a zero exit status on success, and a non-zero exit status on failure.
page_title: packer hcl2_upgrade - Commands
The `packer hcl2_upgrade` Packer command transpiles a JSON
configuration template into HCL2 so you can transition to HCL templates.
page_title: packer hcl2_upgrade command reference
---

-> **Note:** This command is Beta, and currently being improved upon; do not
hesitate [opening a new
issue](https://github.com/hashicorp/packer/issues/new/choose) if you find
something wrong.
# `packer hcl2_upgrade` command reference

# `hcl2_upgrade` Command
The `packer hcl2_upgrade` Packer command transpiles a JSON
configuration template to it's formatted HCL2 counterpart. The command
returns a zero exit status on success and a non-zero exit status on failure.

The `packer hcl2_upgrade` Packer command is used to transpile a JSON
configuration template to it's formatted HCL2 counterpart. The command will
return a zero exit status on success, and a non-zero exit status on failure.
-> **This command is beta**. We do not recommend using beta functionality in production environments. To report an issue and provide feedback, [open a GitHub
issue](https://github.com/hashicorp/packer/issues/new/choose).

Example usage:
## Usage

```shell-session
$ packer hcl2_upgrade my-template.json
Expand Down
10 changes: 3 additions & 7 deletions website/content/docs/commands/index.mdx
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
---
description: |
Packer is controlled using a command-line interface. All interaction with
Packer is done via the `packer` tool. Like many other command-line tools, the
`packer` tool takes a subcommand to execute, and that subcommand may have
additional options as well. Subcommands are executed with `packer SUBCOMMAND`,
where "SUBCOMMAND" is the actual command you wish to execute.
page_title: Commands
The Packer command-line interface lets you perform Packer operations. Use the `packer` CLI command with subcommands, flags, and options to build and manage artifacts and install and manage plugins.
page_title: Packer commands overview
---

# Packer Commands (CLI)
# Packer Commands Overview

Packer is controlled using a command-line interface. All interaction with
Packer is done via the `packer` tool. Like many other command-line tools, the
Expand Down
6 changes: 3 additions & 3 deletions website/content/docs/commands/init.mdx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
description: |
Reference information about the `packer init` command, which downloads and installs one or more plugin binaries specified in a Packer template written in HCL.
page_title: packer init command line reference
The `packer init` command downloads and installs the plugins specified in a Packer template.
page_title: packer init command reference
---

# `init` command reference
# `packer init` command reference

The `packer init` command initializes Packer according to an HCL template configuration. Refer to [Installing Plugins](/packer/docs/plugins/install) for additional information about installing plugins.

Expand Down
17 changes: 4 additions & 13 deletions website/content/docs/commands/inspect.mdx
Original file line number Diff line number Diff line change
@@ -1,19 +1,10 @@
---
description: >
The `packer inspect` command takes a template and outputs the various
components a template defines. This can help you quickly learn about a
template
without having to dive into the HCL itself. The command will tell you things
like what variables a template accepts, the builders it defines, the
provisioners it defines and the order they'll run, and more.
page_title: packer inspect - Commands
The `packer inspect` command outputs the variables, builders, and provisioners a template uses so you can review the template without reading the HCL.
page_title: packer inspect command reference
---

# `inspect` Command
# `packer inspect` command reference

The `packer inspect` command takes a template and outputs the various
components a template defines. This can help you quickly learn about a template
Expand All @@ -29,7 +20,7 @@ The command doesn't validate the actual configuration of the various components
(that is what the `validate` command is for), but it will validate the syntax
of your template by necessity.

## Usage Example
## Example

Given a basic template, here is an example of what the output might look like:

Expand Down
9 changes: 4 additions & 5 deletions website/content/docs/commands/plugins/index.mdx
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
---
description: |
The "plugin" command groups subcommands for interacting with
Packer's plugin and the plugin catalog.
page_title: plugins Command
The `packer plugins` command group contains subcommands for managing Packer plugins.
page_title: packer plugins command reference
---

# `plugins`
# `packer plugins` command reference

The `plugins` command groups subcommands for interacting with Packers' plugins.
The `plugins` command group contains subcommands for installing, uninstalling, and viewing Packer plugins.

```shell-session
$ packer plugins -h
Expand Down
2 changes: 1 addition & 1 deletion website/content/docs/commands/plugins/install.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
description: |
Reference information about the `packer plugins install` command which downloads and installs Packer plugin binaries without a Packer template
The `packer plugins install` command manually downloads and installs Packer plugins without having to update and initialize a build template.
page_title: packer plugins install command reference
---

Expand Down
8 changes: 4 additions & 4 deletions website/content/docs/commands/plugins/installed.mdx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---
description: |
The "plugins installed" command will list installed plugins.
page_title: plugins Command
The `packer plugins installed` command lists the installed Packer plugins.
page_title: packer plugins installed command reference
---

# `plugins installed`
# `packer plugins installed` command reference

The `plugins installed` subcommand lists installed Packer plugins
The `plugins installed` subcommand lists installed Packer plugins.

```shell-session
$ packer plugins installed -h
Expand Down
8 changes: 4 additions & 4 deletions website/content/docs/commands/plugins/remove.mdx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---
description: |
The "plugins remove" command can remove a plugin at a version constraint.
page_title: plugins Command
The `packer plugins remove` command removes one or more versions of an installed Packer plugin.
page_title: packer plugin remove command reference
---

# `plugins remove`
# `packer plugins remove` command reference

The `plugins remove` subcommand removes one or more versions of an installed Packer plugin.
The `packer plugins remove` subcommand removes one or more versions of an installed Packer plugin.

The command is flexible enough to remove all versions at once or just a single version at a time.
- If a plugin's source address is specified, without a version constraint, all the versions of that plugin will be removed.
Expand Down
Loading

0 comments on commit b9829a1

Please sign in to comment.