add terraform
This commit is contained in:
parent
485dfe038e
commit
fc74760828
5
.gitignore
vendored
5
.gitignore
vendored
@ -1 +1,6 @@
|
||||
.venv
|
||||
*terraform.tfvars
|
||||
*tfstate
|
||||
*tfstate.*
|
||||
terraform/.terraform.lock.hcl
|
||||
**/.terraform/
|
||||
15
terraform/main.tf
Normal file
15
terraform/main.tf
Normal file
@ -0,0 +1,15 @@
|
||||
provider "proxmox" {
|
||||
pm_api_url = var.pm_api_url
|
||||
pm_user = var.pm_user
|
||||
pm_password = var.pm_password
|
||||
pm_tls_insecure = true
|
||||
}
|
||||
|
||||
module "vm" {
|
||||
source = "./modules/vm"
|
||||
|
||||
vm_name = var.vm_name
|
||||
#vm_template = var.vm_template
|
||||
target_node = var.target_node
|
||||
ssh_public_key = var.ssh_public_key
|
||||
}
|
||||
36
terraform/modules/vm/main.tf
Normal file
36
terraform/modules/vm/main.tf
Normal file
@ -0,0 +1,36 @@
|
||||
resource "proxmox_vm_qemu" "vm" {
|
||||
name = var.vm_name
|
||||
target_node = var.target_node
|
||||
#clone = var.vm_template
|
||||
full_clone = true
|
||||
|
||||
cpu {
|
||||
cores = 2
|
||||
sockets = 1
|
||||
}
|
||||
|
||||
memory = 2048
|
||||
scsihw = "virtio-scsi-pci"
|
||||
bootdisk = "scsi0"
|
||||
|
||||
network {
|
||||
id = 0
|
||||
model = "virtio"
|
||||
bridge = "vmbr0"
|
||||
}
|
||||
|
||||
disk {
|
||||
iso = "local:iso/ubuntu-24.04.2-live-server-amd64.iso"
|
||||
slot = "scsi0"
|
||||
type = "cdrom"
|
||||
}
|
||||
|
||||
disk {
|
||||
size = "20G"
|
||||
type = "disk"
|
||||
storage = "local-lvm"
|
||||
slot = "scsi1"
|
||||
}
|
||||
|
||||
sshkeys = var.ssh_public_key
|
||||
}
|
||||
3
terraform/modules/vm/outputs.tf
Normal file
3
terraform/modules/vm/outputs.tf
Normal file
@ -0,0 +1,3 @@
|
||||
output "vm_name" {
|
||||
value = proxmox_vm_qemu.vm.name
|
||||
}
|
||||
4
terraform/modules/vm/variables.tf
Normal file
4
terraform/modules/vm/variables.tf
Normal file
@ -0,0 +1,4 @@
|
||||
variable "vm_name" {}
|
||||
#variable "vm_template" {}
|
||||
variable "target_node" {}
|
||||
variable "ssh_public_key" {}
|
||||
8
terraform/modules/vm/versions.tf
Normal file
8
terraform/modules/vm/versions.tf
Normal file
@ -0,0 +1,8 @@
|
||||
terraform {
|
||||
required_providers {
|
||||
proxmox = {
|
||||
source = "telmate/proxmox"
|
||||
version = "3.0.1-rc9"
|
||||
}
|
||||
}
|
||||
}
|
||||
3
terraform/outputs.tf
Normal file
3
terraform/outputs.tf
Normal file
@ -0,0 +1,3 @@
|
||||
output "vm_name" {
|
||||
value = module.vm.vm_name
|
||||
}
|
||||
7
terraform/variables.tf
Normal file
7
terraform/variables.tf
Normal file
@ -0,0 +1,7 @@
|
||||
variable "pm_api_url" {}
|
||||
variable "pm_user" {}
|
||||
variable "pm_password" {}
|
||||
variable "vm_name" {}
|
||||
#variable "vm_template" {}
|
||||
variable "target_node" {}
|
||||
variable "ssh_public_key" {}
|
||||
8
terraform/versions.tf
Normal file
8
terraform/versions.tf
Normal file
@ -0,0 +1,8 @@
|
||||
terraform {
|
||||
required_providers {
|
||||
proxmox = {
|
||||
source = "telmate/proxmox"
|
||||
version = "3.0.1-rc9"
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user