init: add initial code
This commit is contained in:
@@ -0,0 +1,51 @@
|
|||||||
|
terraform {
|
||||||
|
required_providers {
|
||||||
|
proxmox = {
|
||||||
|
source = "bpg/proxmox"
|
||||||
|
version = "~> 0.78.2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "proxmox_virtual_environment_vm" "this" {
|
||||||
|
name = var.vm_name
|
||||||
|
node_name = var.node_name
|
||||||
|
vm_id = var.vm_id
|
||||||
|
|
||||||
|
clone {
|
||||||
|
vm_id = var.template_id
|
||||||
|
}
|
||||||
|
|
||||||
|
agent {
|
||||||
|
enabled = true
|
||||||
|
}
|
||||||
|
|
||||||
|
cpu {
|
||||||
|
cores = var.cpu_cores
|
||||||
|
type = "x86-64-v2-AES"
|
||||||
|
}
|
||||||
|
|
||||||
|
memory {
|
||||||
|
dedicated = var.memory_mb
|
||||||
|
}
|
||||||
|
|
||||||
|
network_device {
|
||||||
|
bridge = var.bridge
|
||||||
|
}
|
||||||
|
|
||||||
|
initialization {
|
||||||
|
hostname = var.vm_name
|
||||||
|
|
||||||
|
ip_config {
|
||||||
|
ipv4 {
|
||||||
|
address = var.ip_address
|
||||||
|
gateway = var.gateway
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
user_account {
|
||||||
|
username = "debian"
|
||||||
|
keys = [var.ssh_public_key]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
variable "vm_id" {
|
||||||
|
description = "Proxmox VM ID"
|
||||||
|
type = number
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "vm_name" {
|
||||||
|
description = "Name of the VM in Proxmox UI and internal OS hostname"
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "ip_address" {
|
||||||
|
description = "Static IPv4 address in CIDR format (e.g., 192.168.100.50/24)"
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "ssh_public_key" {
|
||||||
|
description = "Public SSH key for the admin user"
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "gateway" {
|
||||||
|
description = "Network gateway IP address"
|
||||||
|
type = string
|
||||||
|
default = "192.168.100.1"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "node_name" {
|
||||||
|
description = "Proxmox node name"
|
||||||
|
type = string
|
||||||
|
default = "itlab-ffeks"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "template_id" {
|
||||||
|
description = "ID of the VM template to clone"
|
||||||
|
type = number
|
||||||
|
default = 203
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "cpu_cores" {
|
||||||
|
description = "Number of CPU cores"
|
||||||
|
type = number
|
||||||
|
default = 2
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "memory_mb" {
|
||||||
|
description = "RAM size in MB"
|
||||||
|
type = number
|
||||||
|
default = 2048
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "bridge" {
|
||||||
|
description = "Network bridge interface"
|
||||||
|
type = string
|
||||||
|
default = "vmbr1"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user