summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEnricoGuccii <partyka.003@proton.me>2026-06-01 20:29:10 +0200
committerEnricoGuccii <partyka.003@proton.me>2026-06-01 20:29:10 +0200
commit949c0400134ad400997ad7f3ffaad8c8135579a3 (patch)
tree5a44529be291996b99a3df300285f5e22b255bad
parentfd503278ae598006fae9687f7d9a695ab6996af2 (diff)
terraform: added eveng
-rw-r--r--.gitignore3
-rw-r--r--terraform/main.tf105
-rw-r--r--terraform/modules/eveng/main.tf40
-rw-r--r--terraform/modules/eveng/outputs.tf3
-rw-r--r--terraform/modules/eveng/variables.tf42
5 files changed, 107 insertions, 86 deletions
diff --git a/.gitignore b/.gitignore
index 7977d19..d549a88 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,6 @@
+
+isos/
+
# Local .terraform directories
terraform/.terraform/
diff --git a/terraform/main.tf b/terraform/main.tf
index 9977fb4..fc10416 100644
--- a/terraform/main.tf
+++ b/terraform/main.tf
@@ -1,89 +1,22 @@
-# Provider
-terraform {
- required_providers {
- proxmox = {
- source = "bpg/proxmox"
- version = "~> 0.83"
- }
- }
+# module "vyos" {
+# source = "./modules/vyos"
+# node_name = var.node_name
+# vm_id = 201
+# memory = 2048
+# }
+
+module "eveng" {
+ source = "./modules/eveng"
+ node_name = var.node_name
+ vm_id = 202
+ memory_dedicated = 8192
+ cpu_cores = 4
}
-provider "proxmox" {
- endpoint = var.proxmox_endpoint
- api_token = var.proxmox_api_token
-
- insecure = true
-}
-
-
-# LXC Container
-
-resource "proxmox_virtual_environment_container" "lxc01" {
-
- vm_id = var.lxc_id
- node_name = var.node_name
-
-
- started = true
-
- wait_for_ip {
- ipv4 = true
- }
-
- operating_system {
- template_file_id = "local:vztmpl/debian-12-standard_12.12-1_amd64.tar.zst"
- }
-
-
- cpu {
- cores = var.lxc_cores
- }
-
- memory {
- dedicated = var.lxc_memory
- swap = 512
- }
-
- disk {
- datastore_id = "local-lvm"
- size = 8
- }
-
- network_interface {
- name = "eth0"
- bridge = "vmbr0"
-
- }
-
- initialization {
- hostname = var.lxc_name
-
- ip_config {
- ipv4 {
- address = "dhcp"
- }
- }
-
- user_account {
- keys = [
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHB4jD3PVsg1edlMwBW6Hb/NYLnzEI8dyJQRnQQap45q enrico@cachyos"
- ]
- }
- }
-}
-
-
-resource "local_file" "ansible_inventory" {
- content = <<-EOT
- [lxc]
- ${try(proxmox_virtual_environment_container.lxc01.ipv4["eth0"], "Brak_IP")} ansible_user=root ansible_ssh_common_args='-o StrictHostKeyChecking=no'
- EOT
-
- filename = "${path.module}/../ansible/inventory.ini"
-}
-
-output "aktualne_ip_kontenera" {
- description = "Adres IP pobrany przez Terraforma"
- value = try(proxmox_virtual_environment_container.lxc01.ipv4["eth0"], "Proxmox jeszcze nie zaraportowaƂ IP!")
-}
+# module "observability_stack" {
+# source = "./modules/observability"
+# node_name = var.node_name
+# lxc_id = 203
+# network_bridge = "vmbr0"
+# }
diff --git a/terraform/modules/eveng/main.tf b/terraform/modules/eveng/main.tf
new file mode 100644
index 0000000..02677ad
--- /dev/null
+++ b/terraform/modules/eveng/main.tf
@@ -0,0 +1,40 @@
+terraform {
+ required_providers {
+ proxmox = {
+ source = "bpg/proxmox"
+ version = "~> 0.83"
+ }
+ }
+}
+
+resource "proxmox_virtual_environment_vm" "eveng" {
+ name = var.vm_name
+ node_name = var.node_name
+ vm_id = var.vm_id
+
+ started = true
+
+ cpu {
+ cores = var.cpu_cores
+ type = "host"
+ }
+
+ memory {
+ dedicated = var.memory_dedicated
+ }
+
+ network_device {
+ bridge = var.network_bridge
+ }
+
+ disk {
+ datastore_id = var.datastore_id
+ interface = "scsi0"
+ size = var.disk_size
+ file_format = "raw"
+ }
+
+ cdrom {
+ file_id = var.iso_file
+ }
+}
diff --git a/terraform/modules/eveng/outputs.tf b/terraform/modules/eveng/outputs.tf
new file mode 100644
index 0000000..54de82b
--- /dev/null
+++ b/terraform/modules/eveng/outputs.tf
@@ -0,0 +1,3 @@
+output "ip_address" {
+ value = try(proxmox_virtual_environment_vm.eveng.ipv4_addresses[1][0], "Brak IP ")
+}
diff --git a/terraform/modules/eveng/variables.tf b/terraform/modules/eveng/variables.tf
new file mode 100644
index 0000000..9eacfa1
--- /dev/null
+++ b/terraform/modules/eveng/variables.tf
@@ -0,0 +1,42 @@
+variable "node_name" {
+ type = string
+}
+
+variable "vm_id" {
+ type = number
+}
+
+variable "vm_name" {
+ type = string
+ default = "eve-ng-lab"
+}
+
+variable "cpu_cores" {
+ type = number
+ default = 4
+}
+
+variable "memory_dedicated" {
+ type = number
+ default = 8192
+}
+
+variable "network_bridge" {
+ type = string
+ default = "vmbr0"
+}
+
+variable "datastore_id" {
+ type = string
+ default = "local-lvm"
+}
+
+variable "disk_size" {
+ type = number
+ default = 50
+}
+
+variable "iso_file" {
+ type = string
+ default = "local:iso/eve-ce-prod-6.2.0-4-full.iso"
+}