#!/bin/bash

# Demande des informations à l'utilisateur
read -p "Nom de la VM : " VM_NAME
read -p "ID de la VM : " VM_ID
read -p "Taille du disque (en Go) : " DISK_SIZE
read -p "Mémoire RAM (en Mo) : " RAM_SIZE
read -p "Nombre de cœurs CPU : " CPU_CORES
read -p "Nom d'hôte : " HOSTNAME

# Configuration de l'adresse IP
read -p "Souhaitez-vous une adresse IP statique ? (oui/non) : " IP_STATIC
if [[ "$IP_STATIC" == "oui" ]]; then
    read -p "Adresse IP : " IP_ADDRESS
    read -p "Masque de sous-réseau (ex : 24) : " SUBNET_MASK
    read -p "Passerelle : " GATEWAY
    read -p "Serveur DNS : " DNS_SERVER
    IP_CONFIG="ip=$IP_ADDRESS/$SUBNET_MASK,gw=$GATEWAY"
else
    IP_CONFIG="ip=dhcp"
fi

# Chemin vers l'ISO Debian 12
ISO_PATH="/mnt/iso/template/iso/debian-12.7.0-amd64-netinst.iso"

# Création de la VM
qm create $VM_ID --name $VM_NAME --memory $RAM_SIZE --cores $CPU_CORES --net0 virtio,bridge=vmbr0

# Importation de l'image disque
qm importdisk $VM_ID $ISO_PATH iso

# Attachement du disque importé
qm set $VM_ID --scsihw virtio-scsi-pci --scsi0 lvm:vm-$VM_ID-disk-0

# Ajout du disque Cloud-Init
qm set $VM_ID --ide2 lvm:cloudinit

# Configuration du boot
qm set $VM_ID --boot order=scsi0

# Activation de l'agent QEMU
qm set $VM_ID --agent enabled=1

# Configuration de Cloud-Init
qm set $VM_ID --ipconfig0 $IP_CONFIG
qm set $VM_ID --ciuser admin --cipassword admin
qm set $VM_ID --nameserver $DNS_SERVER
qm set $VM_ID --searchdomain local
qm set $VM_ID --sshkey ~/.ssh/id_rsa.pub

# Conversion en template
qm template $VM_ID

# Clonage de la VM à partir du template
NEW_VM_ID=$(($VM_ID + 1))
qm clone $VM_ID $NEW_VM_ID --name $VM_NAME

# Démarrage de la nouvelle VM
read -p "Souhaitez-vous démarrer la VM maintenant ? (oui/non) : " START_VM
if [[ "$START_VM" == "oui" ]]; then
    qm start $NEW_VM_ID
    echo "La VM a été démarrée."
else
    echo "La VM n'a pas été démarrée."
fi

echo "La configuration de la VM est terminée."
