summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjerome <jerome@xlinfo.fr>2025-01-27 17:58:42 +0100
committerjerome <jerome@xlinfo.fr>2025-01-27 17:58:42 +0100
commit7d7637cb926d7c8f3469ce830a4b90e203bb4a1b (patch)
treefdd42f3f547e2b997fb3fbe5a91a5a12c1b5d85a
parentfbf6b72eb6c47df90ffb2509c2cdff49a2d4a7ad (diff)
downloadproxmox_lxc-7d7637cb926d7c8f3469ce830a4b90e203bb4a1b.tar.gz
proxmox_lxc-7d7637cb926d7c8f3469ce830a4b90e203bb4a1b.zip
modules
-rw-r--r--container/main.tf64
-rw-r--r--container/variables.tf5
-rw-r--r--main.tf103
-rw-r--r--sauvegarde46
-rw-r--r--terraform.tfvars4
5 files changed, 132 insertions, 90 deletions
diff --git a/container/main.tf b/container/main.tf
new file mode 100644
index 0000000..c185c4e
--- /dev/null
+++ b/container/main.tf
@@ -0,0 +1,64 @@
+terraform {
+ required_providers {
+ proxmox = {
+ source = "telmate/proxmox"
+ #version = "3.0.1-rc6"
+ version = "2.9.14"
+ }
+ }
+}
+
+provider "proxmox" {
+ # Configuration options
+ #pm_tls_insecure = true
+ pm_api_url = "https://pve.xlinfo.fr:8006/api2/json"
+ pm_user = "stagiaire@pve"
+ pm_password = "terraform"
+ #pm_api_token_id = "xxxxxxx@pve!xxxxxxxx"
+ #pm_api_token_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+}
+
+resource "proxmox_lxc" "stagiaire" {
+ target_node = "pve"
+ vmid = var.vmid
+ hostname = "${var.os}-${var.prenom}"
+ ostemplate = var.template
+ 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.${var.vmid}/24"
+ gw = "192.168.2.254"
+ }
+
+ provisioner "remote-exec" {
+ connection {
+ type = "ssh"
+ host = "192.168.2.${var.vmid}"
+ user = "root"
+ private_key = file("~/.ssh/id_rsa")
+ timeout = "5m"
+ }
+ inline = [
+ "touch terraform_ok"
+ ]
+ }
+
+ provisioner "local-exec" {
+ command = "./local_script 192.168.2.${var.vmid}"
+ }
+
+}
diff --git a/container/variables.tf b/container/variables.tf
new file mode 100644
index 0000000..79bd187
--- /dev/null
+++ b/container/variables.tf
@@ -0,0 +1,5 @@
+
+variable "vmid" {}
+variable "prenom" {}
+variable "template" {}
+variable "os" {}
diff --git a/main.tf b/main.tf
index fe144d1..e192b96 100644
--- a/main.tf
+++ b/main.tf
@@ -12,99 +12,26 @@ provider "proxmox" {
# Configuration options
#pm_tls_insecure = true
pm_api_url = "https://pve.xlinfo.fr:8006/api2/json"
- pm_user = "xxxxxxxx@pve"
- pm_password = "xxxxxxxx"
+ pm_user = "stagiaire@pve"
+ pm_password = "terraform"
#pm_api_token_id = "xxxxxxx@pve!xxxxxxxx"
#pm_api_token_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
-resource "proxmox_lxc" "debian" {
- target_node = "pve"
- 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
- 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, 0)}/24"
- gw = "192.168.2.254"
- }
-
- provisioner "remote-exec" {
- connection {
- type = "ssh"
- host = "192.168.2.${element(var.vm_range, 0)}"
- 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, 0)}"
- }
-
+module "debian" {
+ source = "./container/"
+ vmid = element(var.vm_range, 0)
+ prenom = var.prenom
+ template = "local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst"
+ os = "debian"
}
-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)}"
- }
-
+module "rocky" {
+ source = "./container/"
+ vmid = element(var.vm_range, 1)
+ prenom = var.prenom
+ template = "local:vztmpl/rockylinux-9-custom_amd64.tar.gz"
+ os = "rocky"
}
+
diff --git a/sauvegarde b/sauvegarde
new file mode 100644
index 0000000..0aa7158
--- /dev/null
+++ b/sauvegarde
@@ -0,0 +1,46 @@
+
+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
index 31c109c..67ef42b 100644
--- a/terraform.tfvars
+++ b/terraform.tfvars
@@ -1,4 +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]
+prenom = "alice"
+vm_range = [106, 107]