Robert Kaussow
d7508a2704
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #4 Co-authored-by: Robert Kaussow <mail@thegeeklab.de> Co-committed-by: Robert Kaussow <mail@thegeeklab.de>
53 lines
2.4 KiB
Markdown
53 lines
2.4 KiB
Markdown
# packer-proxmox
|
|
|
|
[![Build Status](https://img.shields.io/drone/build/infra/packer-proxmox?logo=drone&server=https%3A%2F%2Fdrone.rknet.org)](https://drone.rknet.org/infra/packer-proxmox)
|
|
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?label=license)](LICENSE)
|
|
|
|
This repository provides infrastructure-as-code examples to automate the creation of virtual machine images on Proxmox using [HashiCorp Packer](https://www.packer.io) and the [Packer Plugin for Proxmox](https://www.packer.io/plugins/builders/proxmox/iso). All examples are written in the HashiCorp Configuration Language `HCL2`.
|
|
|
|
This project is inspired by [bitop/packer-templates](https://gitlab.com/bitop/packer-templates/rocky).
|
|
|
|
## Requirements
|
|
|
|
**Packer**:
|
|
|
|
- HashiCorp [Packer](https://www.packer.io/intro/getting-started/install.html)
|
|
- HashiCorp [Packer Plugin for Proxmox](https://www.packer.io/plugins/builders/proxmox/iso) (`proxmox-iso`)
|
|
|
|
Required plugins are automatically downloaded during the `packer init` phase. These plugins are placed in the same directory as your Packer executable `/usr/local/bin` or `$HOME/.packer.d/plugins`.
|
|
|
|
## Configuration
|
|
|
|
### Step 1 - Download the release
|
|
|
|
Download the **latest** release.
|
|
|
|
### Step 2 - Download the Guest Operating Systems ISOs
|
|
|
|
1. Download the required guest operating system ISO images (e.g. `Rocky-9.3-x86_64-minimal.iso`).
|
|
2. Obtain the checksum type (e.g. `sha256`, `md5`, etc.) and checksum value for each guest operating system `.iso` image. This will be used in the build input variables.
|
|
3. Upload the guest operating system `.iso` images to your Proxmox server.
|
|
|
|
### Step 3 - Configure the Variables
|
|
|
|
All available [variables](https://www.packer.io/docs/templates/hcl_templates/variables) are defined in the `variables.pkr.hcl` files. They can be overwritten using environment variables or in the `server.auto.pkrvars.hcl` file.
|
|
|
|
### Step 4 - Modify the Configurations and Scripts (Optional)
|
|
|
|
If required, modify the configuration and scripts files.
|
|
|
|
## Build
|
|
|
|
Initialize packer and start a build. Packer creates a local HTTP server to provide the kickstart file for the VM. For this to work, the Proxmox server must be able to reach the host IP of the Packer host.
|
|
|
|
> **Info:** Using the force flag will automatically remove existing _templates_ with a matching name or VMID.
|
|
|
|
```Shell
|
|
packer init rocky-9/
|
|
packer build -force rocky-9/
|
|
```
|
|
|
|
## License
|
|
|
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|