summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjerome <jerome@xlinfo.fr>2025-01-27 15:52:55 +0100
committerjerome <jerome@xlinfo.fr>2025-01-27 15:52:55 +0100
commitfbf6b72eb6c47df90ffb2509c2cdff49a2d4a7ad (patch)
tree6b235a022fa2c46f47c1656c93a9a399917cd749
parenta51a2aa7afa1686a999a3152b0a26bc7f5832fae (diff)
downloadproxmox_lxc-fbf6b72eb6c47df90ffb2509c2cdff49a2d4a7ad.tar.gz
proxmox_lxc-fbf6b72eb6c47df90ffb2509c2cdff49a2d4a7ad.zip
terraform.tfvars
-rw-r--r--main.tf62
-rw-r--r--terraform.tfvars4
-rw-r--r--variables.tf21
3 files changed, 60 insertions, 27 deletions
diff --git a/main.tf b/main.tf
index b4b87cb..fe144d1 100644
--- a/main.tf
+++ b/main.tf
@@ -14,16 +14,15 @@ provider "proxmox" {
pm_api_url = "https://pve.xlinfo.fr:8006/api2/json"
pm_user = "xxxxxxxx@pve"
pm_password = "xxxxxxxx"
- #pm_api_token_id = "xxxxxxx@pam!terraform"
+ #pm_api_token_id = "xxxxxxx@pve!xxxxxxxx"
#pm_api_token_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
-resource "proxmox_lxc" "stagiaire" {
+resource "proxmox_lxc" "debian" {
target_node = "pve"
- count = var.nb
- vmid = var.prem_id + count.index
- hostname = element(var.prenom, count.index)
- ostemplate = var.template
+ vmid = element(var.vm_range, 0)
+ hostname = "debian-${var.prenom}"
+ ostemplate = "local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst"
password = "secret"
unprivileged = true
start = true
@@ -41,14 +40,14 @@ resource "proxmox_lxc" "stagiaire" {
network {
name = "eth0"
bridge = "vmbr0"
- ip = "192.168.2.${var.prem_id + count.index}/24"
+ ip = "192.168.2.${element(var.vm_range, 0)}/24"
gw = "192.168.2.254"
}
provisioner "remote-exec" {
connection {
type = "ssh"
- host = "192.168.2.${var.prem_id + count.index}"
+ host = "192.168.2.${element(var.vm_range, 0)}"
user = "root"
private_key = file("~/.ssh/id_rsa")
timeout = "5m"
@@ -59,7 +58,52 @@ resource "proxmox_lxc" "stagiaire" {
}
provisioner "local-exec" {
- command = "./local_script 192.168.2.${var.prem_id + count.index}"
+ command = "./local_script 192.168.2.${element(var.vm_range, 0)}"
+ }
+
+}
+
+resource "proxmox_lxc" "rocky" {
+ target_node = "pve"
+ vmid = element(var.vm_range, 1)
+ hostname = "rocky-${var.prenom}"
+ ostemplate = "local:vztmpl/rockylinux-9-custom_amd64.tar.gz"
+ password = "secret"
+ unprivileged = true
+ start = true
+ ssh_public_keys = <<-EOT
+ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCZJG/XcIIvW0JOJb6ftEpopS4szOo8dRehASGIOAswPRko6JFMT9QuAvl9YkmzgSorn0KpyQrqAxNTklADocMGPW2BJzKb/1fQyZYKY9bLXxyKaYZKbDZNaUJmW92ThDmUrIWPgjh5BhUxOTwRbDhTsRu/pvulnGw+8yOp7Tz8nUgAoJEZ/7fGkm7AaJPLmF/szQEhL/WSNqTtNdCHNYpQqgRIUZh5zqcb2jXa0pZ7GMnPmoSUMlz1OfAxMOIuziaP3i1J/KHVhXdxj4nrOtUjrUULfqk9vyfKkf7BLYKO3fO3BLR9H5HgeTlaB2aXNuDgRAQposNZ0FEK/VkWj+DQuqjuj9nYo57GbfMfhWr/dTKxTVj3xsbFdThDWtlp7sVI2jguqntwwlmhhexJp1fAYZn92KYkaxGHWLbR0bxLEWVjHXciVW2D12IUZfGWXh5wInoQN1gs1i6NUqgf1uDZhAax5H9G07YySR2fnM9TB5c5apyf7PFCg1kZAnqVHrE= jerome@parrot
+ EOT
+
+ memory = 512
+ swap = 512
+ cores = 1
+ rootfs {
+ storage = "local-lvm"
+ size = "8G"
+ }
+ network {
+ name = "eth0"
+ bridge = "vmbr0"
+ ip = "192.168.2.${element(var.vm_range, 1)}/24"
+ gw = "192.168.2.254"
+ }
+
+ provisioner "remote-exec" {
+ connection {
+ type = "ssh"
+ host = "192.168.2.${element(var.vm_range, 1)}"
+ user = "root"
+ private_key = file("~/.ssh/id_rsa")
+ timeout = "5m"
+ }
+ inline = [
+ "touch terraform_ok"
+ ]
+ }
+
+ provisioner "local-exec" {
+ command = "./local_script 192.168.2.${element(var.vm_range, 1)}"
}
}
diff --git a/terraform.tfvars b/terraform.tfvars
new file mode 100644
index 0000000..31c109c
--- /dev/null
+++ b/terraform.tfvars
@@ -0,0 +1,4 @@
+# valeur des variables
+# peut être surchargé par terraform plan|apply -var prenom="bob" -var vm_range=[106,107]
+prenom = "alice"
+vm_range = [104,105]
diff --git a/variables.tf b/variables.tf
index 5b7a68a..cd49a8b 100644
--- a/variables.tf
+++ b/variables.tf
@@ -1,27 +1,12 @@
# définition des variables
-variable "nb" {
- description = "nombre de machines"
- type = number
- default = 2
-}
-
variable "prenom" {
description = "prenom stagiaire"
- type = list(any)
- default = ["alice", "bob"]
-}
-
-variable "template" {
- description = "template container"
type = string
- #default = "local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst"
- default = "local:vztmpl/rockylinux-9-custom_amd64.tar.gz"
}
-variable "prem_id" {
- description = "première vmid"
- type = number
- default = 104
+variable "vm_range" {
+ description = "rangée de machines"
+ type = list(any)
}