/terraform-proxmox

Terraform example for creating LXC Container in Proxmox

Primary LanguageHCL

Terraform Proxmox Example

This code is based on Proxmox Provider. For more information refer to the official documentation

Requirements

Terraform User

Commands for creating Terraform user in a nutshell:

pveum role add TerraformProv -privs "Datastore.AllocateSpace Datastore.Audit Pool.Allocate Sys.Audit Sys.Console Sys.Modify VM.Allocate VM.Audit VM.Clone VM.Config.CDROM VM.Config.Cloudinit VM.Config.CPU VM.Config.Disk VM.Config.HWType VM.Config.Memory VM.Config.Network VM.Config.Options VM.Migrate VM.Monitor VM.PowerMgmt"
pveum user add terraform-prov@pve --password <password>
pveum aclmod / -user terraform-prov@pve -role TerraformProv

Terraform User API_TOKEN

  1. Create API_TOKEN: Login to Proxmox > Datacenter > Permissions > API Tokens > Add > Select Terraform User + Give some Token ID + (Important) Uncheck Privilege Sepration
  2. Export PM_URL_API, PM_API_TOKEN_ID, PM_API_TOKEN_SECRET variables

Creating a LXC Container

  1. Initialize terraform
terraform init
  1. Copy terraform.tfvars.example file to terraform.tfvars and fill the variables
  2. If you want to create multiple machine then set count in terraform.tfvars file. The default value for count is 1.
  3. Format and Validate your variables
terraform fmt
terraform validate
  1. Apply your IaC
terraform apply
  1. Enjoy ;)

Contribute

Feel free to contribute.