diff options
| -rw-r--r-- | container/main.tf | 64 | ||||
| -rw-r--r-- | container/variables.tf | 5 | ||||
| -rw-r--r-- | main.tf | 103 | ||||
| -rw-r--r-- | sauvegarde | 46 | ||||
| -rw-r--r-- | terraform.tfvars | 4 |
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" {} @@ -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] |
