Blog/content/post/terraform-create-pve-vm-module-proxmox.md
Gitea Actions c203691da3
All checks were successful
Deploy / Deploy (push) Successful in 4s
Auto-update blog content from Obsidian: 2025-05-28 10:53:05
2025-05-28 10:53:05 +00:00

1.6 KiB

title, description, date, draft, tags, categories
title description date draft tags categories
Template true

Develop a Terraform Module

In the final step of this article, I will show you how you can transform this piece of code in a reusable Terraform module.

What is a Terraform Module?

Terraform modules are reusable components that let you organize and simplify your infrastructure code by grouping related resources into a single unit. Instead of repeating the same configuration across multiple places, you can define it once in a module and use it wherever needed, just like calling a function in programming.

Modules can be local (within your project) or remote (from the Terraform Registry or a Git repository), making it easy to share and standardize infrastructure patterns across teams or projects. By using modules, you make your code more readable, maintainable, and scalable.

Terraform Code

We will now transform the Terraform code above by creating our own module called `pve_vm

📌 Reminder, you can find all the code I have written in my Homelab repo, the following code is located here. Don't forget to match your variables with your environment!

Code Structure

terraform
|-- modules
|   `-- pve_vm
|       |-- main.tf
|       |-- provider.tf
|       `-- variables.tf
`-- projects
    `-- simple-vm-with-module
        |-- credentials.auto.tfvars
        |-- main.tf
        |-- provider.tf
        `-- variables.tf

Module