Création d'une VM Linux Avec Terraform
-
- Paramétrage de PROXMOX (création d'une clé d'API)
- Installation de TERRAFORM sur une DEBIAN (Créer un container de management)
- Suivre la documentation officielle https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli
- Vérifier l'installation de TERRAFORM:
root@MGT-FRONT-01:~# terraform -v Terraform v1.5.2 on linux_amd64
- Paramétrage de PROXMOX (création d'une clé d'API)
- Créer un dossier de travail:
mkdir VM_CREATION && cd VM_CREATION
# Creation du fichier provider.tf
nano provider.tf
Contenu du fichier:
terraform {
required_providers {
proxmox = {
source = "telmate/proxmox"
#version = "2.9.11"
}
}
}
provider "proxmox" {
# url de Proxmox
pm_api_url = "https://192.168.1.179:8006/api2/json"
# api token id is in the form of: <username>@pam!<tokenId>
pm_api_token_id = "terraform@pve!fbf5f330-09b3-4282-b949-0303a1328ab8"
pm_tls_insecure = true
pm_parallel = 2
}
nano web.tf
Contenu du fichier:
resource "proxmox_vm_qemu" "web-server-1" {
count = 1
name = "web-front-01"
target_node = "pve-front-01"
vmid = "0"
clone = "Ubuntu22-Template"
full_clone = "true"
agent = 1
os_type = "cloud-init"
cores = 1
sockets = 1
cpu = "kvm64"
oncreate = true
memory = 1024
scsihw = "virtio-scsi-pci"
bootdisk = "scsi0"
disk {
slot = 0
size = "8G"
type = "scsi"
storage = "local-lvm"
iothread = 0
}
network {
model = "virtio"
bridge = "vmbr1"
}
lifecycle {
ignore_changes = [
network,
]
}
ipconfig0 = "ip=172.16.250.3/24,gw=172.16.250.1"
#Si vous avez des clés SSH vous pouvez les mettre ici
sshkeys = <<EOF
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIeq/iHCth8j1aKG/DMq0rd3bveLgqksAkwBOhYgAFG1 kvega@fr-lap10398
EOF
}


