diff options
| author | jerome <jerome@xlinfo.fr> | 2025-01-27 15:52:55 +0100 |
|---|---|---|
| committer | jerome <jerome@xlinfo.fr> | 2025-01-27 15:52:55 +0100 |
| commit | fbf6b72eb6c47df90ffb2509c2cdff49a2d4a7ad (patch) | |
| tree | 6b235a022fa2c46f47c1656c93a9a399917cd749 | |
| parent | a51a2aa7afa1686a999a3152b0a26bc7f5832fae (diff) | |
| download | proxmox_lxc-fbf6b72eb6c47df90ffb2509c2cdff49a2d4a7ad.tar.gz proxmox_lxc-fbf6b72eb6c47df90ffb2509c2cdff49a2d4a7ad.zip | |
terraform.tfvars
| -rw-r--r-- | main.tf | 62 | ||||
| -rw-r--r-- | terraform.tfvars | 4 | ||||
| -rw-r--r-- | variables.tf | 21 |
3 files changed, 60 insertions, 27 deletions
@@ -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) } |
