From 4287339d6bfd7e463d36d9db9278003c70d24c4f Mon Sep 17 00:00:00 2001
From: AJ Schroeder <6432150+ajschroeder@users.noreply.github.com>
Date: Tue, 10 Jun 2025 16:15:12 -0500
Subject: [PATCH] doc: updated README
---
README.md | 92 ++++++++++++++++++++++++++++++++++++-------------------
1 file changed, 60 insertions(+), 32 deletions(-)
diff --git a/README.md b/README.md
index 2c9b4fd..0e995fe 100644
--- a/README.md
+++ b/README.md
@@ -27,18 +27,20 @@ The following builds are available:
| :--- | :--- | :---: | :---: | :---: | :---: |
| AlmaLinux | 9 | ✓ | ✓ | ✓ | |
| AlmaLinux | 8 | ✓ | ✓ | ✓ | |
-| CentOS Stream | 9 | ✓ | ✓ | | |
-| Debian | 12 | ✓ | | | |
-| Debian | 11 | ✓ | | | |
-| Oracle Linux | 9 | ✓ | | | |
-| Oracle Linux | 8 | ✓ | | | |
-| Rocky Linux | 9 | ✓ | | | |
-| Rocky Linux | 8 | ✓ | | | |
-| OpenSUSE Leap | 15.6 | ✓ | | | |
-| OpenSUSE Leap | 15.5 | ✓ | | | |
-| Ubuntu Server | 24.04 LTS | ✓ | | | |
-| Ubuntu Server | 22.04 LTS | ✓ | | | |
+| CentOS Stream | 10 | ✓ | ✓ | ✓ | ✓ |
+| CentOS Stream | 9 | ✓ | ✓ | ✓ | ✓ |
+| Debian | 12 | ✓ | ✓ | ✓ | ✓ |
+| Debian | 11 | ✓ | ✓ | ✓ | ✓ |
+| OpenSUSE Leap | 15.6 | ✓ | ✓ | ✓ | ✓ |
+| OpenSUSE Leap | 15.5 | ✓ | ✓ | ✓ | ✓ |
+| Oracle Linux | 9 | ✓ | ✓ | ✓ | ✓ |
+| Oracle Linux | 8 | ✓ | ✓ | ✓ | ✓ |
+| Rocky Linux | 9 | ✓ | ✓ | ✓ | ✓ |
+| Rocky Linux | 8 | ✓ | ✓ | ✓ | ✓ |
+| Ubuntu Server | 24.04 LTS | ✓ | ✓ | ✓ | ✓ |
+| Ubuntu Server | 22.04 LTS | ✓ | ✓ | ✓ | ✓ |
| Ubuntu Server | 20.04 LTS | ✓ | ✓ | ✓ | ✓ |
+| Windows Desktop | 11 | | | ✓ | N/A |
## Requirements
@@ -52,7 +54,7 @@ Operating systems and versions tested with the project:
**Packer**:
-- HashiCorp [Packer][packer-install] 1.11.0 or higher.
+- HashiCorp [Packer][packer-install] 1.12.0 or higher.
> **Note**
>
@@ -121,12 +123,12 @@ Operating systems and versions tested with the project:
>
> Required plugins are automatically downloaded and initialized when using `./build.sh`. For dark sites, you may download the plugins and place these same directory as your Packer executable `/usr/local/bin` or `$HOME/.packer.d/plugins`.
- - HashiCorp [Packer Plugin for Proxmox][packer-plugin-proxmox] 1.1.8 or later.
- [Packer Plugin for Git][packer-plugin-git] 0.6.2 or later - a community plugin for HashiCorp Packer.
+ - HashiCorp [Packer Plugin for Proxmox-ISO][packer-plugin-proxmox] version 1.2.1 - the plugin for HashiCorp Packer to communicate with Proxmox VE. This needs to be pinned to version 1.2.1 at this time due to a [CPU bug](https://github.com/hashicorp/packer-plugin-proxmox/issues/307).
**Ansible**:
-- [Ansible][ansible] [Core][ansible-core] version 2.10 or higher.
+- [Ansible][ansible] [Core][ansible-core] version 2.14 or higher.
> **Note**
>
@@ -165,12 +167,12 @@ Operating systems and versions tested with the project:
-
CentOS Stream 9
- It is recommended that you install ansible-core using your system's package manager instead of via pip.
+ It is recommended that you install ansible using your system's package manager instead of via pip.
Install.
```shell
- dnf -y install ansible-core
+ dnf -y install ansible
```
@@ -263,7 +265,7 @@ You will need to generate a SHA-512 encrypted password for the `build_password_e
Run the following command to generate a SHA-512 encrypted password:
```shell
-mkpasswd -m sha512
+mkpasswd -m sha512crypt
```
The following output is displayed:
@@ -315,12 +317,13 @@ Edit the `config/common.pkrvars.hcl` file to configure the following common vari
common_iso_storage = ""
// Boot and Provisioning Settings
-common_data_source = "http"
-common_http_ip = null
-common_http_port_min = 8000
-common_http_port_max = 8099
-common_ip_wait_timeout = "20m"
-common_shutdown_timeout = "15m"
+common_data_source = "http"
+common_http_interface = null
+common_http_bind_address = null
+common_http_port_min = 8000
+common_http_port_max = 8099
+common_ip_wait_timeout = "20m"
+common_shutdown_timeout = "15m"
// HCP Packer
common_hcp_packer_registry_enabled = false
@@ -359,21 +362,42 @@ common_data_source = "disk"
The Packer plugin's `cd_content` option is used when selecting `disk` unless the distribution does not support a secondary CD-ROM.
-#### HTTP Binding
+#### HTTP Interface
-If you need to define a specific IPv4 address from your host for Packer's built-in HTTP server, modify the `common_http_ip` variable from `null` to a `string` value that matches an IP address on your Packer host.
+Name of the network interface that Packer gets `HTTPIP` from. Defaults to the first non loopback interface.
```hcl title="config/common.pkrvars.hcl"
-common_http_ip = "172.16.11.254"
+common_http_interface = "eth2"
+```
+
+#### HTTP Bind Address
+
+IP address on the build server to bind the Packer HTTP instance to. Must be an interface that is reachable from the Proxmox server.
+```hcl title="config/common.pkrvars.hcl"
+common_http_bind_address = 172.16.15.97"
```
### Network Variables
-Configuring a static IP address under the `configs/network.pkrvars.hcl` file is supported. If you want to use DHCP for the templates then leave these variables commented out. The default is DHCP.
-
Edit the `config/network.pkrvars.hcl` file to configure the following:
-- Static IP address settings
+#### Proxmox Specific Network Variables for VM Templates
+These variables are used by Packer to configure the network interface for the VM template. These are specific to your environment. For example, to use the default `vmbr0` interface and the tag for VLAN 102, you would set it as follows:
+
+```hcl title="config/network.pkrvars.hcl"
+// Proxmox settings for VM templates
+vm_bridge_interface = "vmbr0"
+vm_vlan_tag = "102"
+```
+
+Configuring a static IP address under the `configs/network.pkrvars.hcl` file is supported. If you want to use DHCP for the templates then leave these variables commented out. The default is DHCP.
+
+> **Note**
+>
+> - These settings are site specific for each Proxmox host and are going to be needed regardless if you use DHCP or static IP addresses.
+
+#### Static IP address settings
+The Packer build templates default to using DHCP, however, you can use static IP addressing for your VM templates. Simply uncomment the following vars and configure to your specific requirements:
```hcl title="config/network.pkrvars.hcl"
vm_ip_address = "192.168.101.100"
@@ -382,6 +406,10 @@ vm_ip_gateway = "192.168.101.1"
vm_dns_list = [ "8.8.8.8", "8.8.4.4" ]
```
+> **Note**
+>
+> - If you need/want to go back to using DHCP, just comment these variables out again and the templates should go back to using DHCP.
+
### Proxmox Variables
Edit the `config/proxmox.pkrvars.hcl` file to configure the following:
@@ -390,13 +418,13 @@ Edit the `config/proxmox.pkrvars.hcl` file to configure the following:
```hcl title="config/proxmox.pkrvars.hcl"
// Proxmox Credentials
-proxmox_api_url = ""
proxmox_api_token_id = "name@realm!token"
proxmox_api_token_secret = ""
proxmox_insecure_connection = false
-// Proxmox Settings
-proxmox_node = ""
+// Proxmox Specific Settings
+proxmox_hostname = ""
+proxmox_node = ""
```
The `proxmox_api_token_id` variable uses a specific format and, as the time of this writing, needs to be assigned to the `PVEAdmin` role. One of the to-do's is to document a least-privilege method of creating the Proxmox API token.