diff --git a/scripts/import-disk-image.sh b/scripts/import-disk-image.sh new file mode 100644 index 0000000..d050704 --- /dev/null +++ b/scripts/import-disk-image.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +# Ruta donde están las imágenes de disco +IMAGES_DIR="/var/lib/vz/template/images/" + +# Mensaje inicial +if ! [ -d "$IMAGES_DIR" ]; then + mkdir -p "$IMAGES_DIR" +fi + +whiptail --title "Importar Imagen de Disco" --msgbox "Por favor, asegúrate de tener las imágenes de disco que quieres importar en la siguiente ubicación:\n\n$IMAGES_DIR\n\nFormatos soportados: .img, .qcow2, .vmdk." 12 60 + +# 1. Seleccionar las imágenes de disco +IMAGENES=$(whiptail --title "Seleccionar Imágenes de Disco" --checklist "Selecciona las imágenes de disco para importar:" 20 60 10 $(ls "$IMAGES_DIR" | grep -E "\.(img|qcow2|vmdk)$" | awk '{print $1, "OFF"}') 3>&1 1>&2 2>&3) + +if [ -z "$IMAGENES" ]; then + whiptail --title "Error" --msgbox "No se seleccionó ninguna imagen." 8 40 + exit 1 +fi + +# 2. Seleccionar VM +VMID=$(whiptail --title "Seleccionar VM" --menu "Selecciona la VM a la que deseas importar la imagen de disco:" 15 60 8 $(qm list | awk 'NR>1 {print $1, $2}') 3>&1 1>&2 2>&3) + +if [ -z "$VMID" ]; then + whiptail --title "Error" --msgbox "No se seleccionó ninguna VM." 8 40 + exit 1 +fi + +# 3. Importar cada imagen seleccionada +for IMAGEN in $IMAGENES; do + # Quitar comillas de la imagen seleccionada + IMAGEN=$(echo "$IMAGEN" | tr -d '"') + + # 4. Seleccionar tipo de disco para cada imagen + INTERFAZ=$(whiptail --title "Tipo de Interfaz" --menu "Selecciona el tipo de disco para la imagen: $IMAGEN" 15 40 4 \ + "sata" "Añadir como SATA" \ + "scsi" "Añadir como SCSI" \ + "virtio" "Añadir como VirtIO" \ + "ide" "Añadir como IDE" 3>&1 1>&2 2>&3) + + if [ -z "$INTERFAZ" ]; then + whiptail --title "Error" --msgbox "No se seleccionó un tipo de disco para $IMAGEN." 8 40 + exit 1 + fi + + FULL_PATH="$IMAGES_DIR/$IMAGEN" + + # 5. Importar la imagen + whiptail --title "Importando" --infobox "Importando imagen: $IMAGEN como $INTERFAZ..." 8 40 + qm importdisk "$VMID" "$FULL_PATH" "local-lvm" --format "$INTERFAZ" +done + +whiptail --title "Completado" --msgbox "Todas las imágenes se importaron correctamente." 8 40 +exit 0