From 04e86b37cbc3bc3fba54f23ac2aa69c474679408 Mon Sep 17 00:00:00 2001 From: Internet Addict Date: Fri, 19 Apr 2024 14:47:04 +0200 Subject: [PATCH] Update README.md --- README.md | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 113 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1375200..0bffcc2 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ echo "Exporting VM to OVA and copying directly to Proxmox..." # Run import script on Proxmox echo "Running import script on Proxmox..." -sshpass -p "$PROXMOX_PASSWORD" ssh ${PROXMOX_USER}@${PROXMOX_HOST} "bash /var/lib/vz/template/inport3.sh $VM_NAME $VMID" +sshpass -p "$PROXMOX_PASSWORD" ssh ${PROXMOX_USER}@${PROXMOX_HOST} "bash /var/lib/vz/template/inport.sh $VM_NAME $VMID" # Clean up the temporary files on Proxmox echo "Cleaning up temporary files on Proxmox..." @@ -191,7 +191,7 @@ Navigate to Ubuntu container and import and export VM using this command. ``` You need to use exact name of the VM from VMware and NUMBER-FOR-ROXMOX is required for proxmox. If you dont know what number to use then just use 100 and increase the number with each VM. -#### ! Migration requires at least double the size of VM on Proxmox for it to work. ! +#### ! Migration requires at least double the size of VM in Proxmox for it to work. ! ### 7. Enjoy @@ -199,3 +199,114 @@ Congratulations! If you did everything right the VM will export and inport autom # Variant 2. server-desktop-server migration (easier) +### 1. Export VM + +Open VMware vSphare web interface. + +Shutdown VM you want to export. + +Right-click on the VM and select ``Template > Export OVF Template`` then dowload VM files. + +### 2. Move saved files to Proxmox + +You will need SCP for transfaring files, easiest method is to [download and install PuTTY](https://putty.org/). And dont forget to add PSCP utility during the installation. + +Open cmd.exe and copy files to proxmox. +```powershell +pscp C:\path\to\vm-name.ovf root@IP-ADRESS-OF-PROXMOX:/var/lib/vz/template +pscp C:\path\to\vm-name-1.vmdk root@IP-ADRESS-OF-PROXMOX:/var/lib/vz/template +``` + +### 3. Import VM + +Open Proxmox web interface. + +Navigate to server terminal. + +``Server > Console`` + +In terminal navigate to /var/lib/vz/template directory + +```bash +cd /var/lib/vz/template +``` + +Create import.sh file and copy my script. + +```bash +nano import.sh +``` +__import.sh__ +```bash +#!/bin/bash + +# Script to import VMware images (OVF or OVA based) to Proxmox VE, executed locally on the Proxmox host + +PROXMOX_STORAGE=local-lvm +VM_PATH=/var/lib/vz/template +VM_NAME=$1 +VMID=$2 + +if [[ -z "$VM_NAME" || -z "$VMID" ]]; then + echo "Usage: $0 " + exit 1 +fi + +# Determine file extension to handle OVF and OVA appropriately +FILE_EXTENSION="${VM_NAME##*.}" + +# Import VM on Proxmox based on file type +echo "Importing VM..." +if [ "$FILE_EXTENSION" == "ova" ]; then + # Assuming qm supports OVA directly; if not, this needs to be extracted first + qm importova $VMID "$VM_PATH/$VM_NAME" $PROXMOX_STORAGE +else + qm importovf $VMID "$VM_PATH/$VM_NAME.ovf" $PROXMOX_STORAGE +fi + +# Ensure VM is fully stopped before making hardware changes +echo "Ensuring VM is stopped..." +qm stop $VMID --skiplock +sleep 10 + +# Set the SCSI controller to LSI Logic +echo "Setting SCSI hardware type to LSI..." +qm set $VMID -scsihw lsi + +# Transition each detected SCSI disk to IDE interface +DISKS=$(qm config $VMID | grep -oP 'scsi\d+: \K.*') +DISK_ID=0 +for DISK_PROP in $DISKS; do + echo "Transitioning SCSI disk to IDE..." + qm set $VMID -scsi$DISK_ID none + qm set $VMID -ide$DISK_ID $DISK_PROP + ((DISK_ID++)) +done + +# Set network and boot order +echo "Setting network model and boot order..." +qm set $VMID -net0 model=vmxnet3,bridge=vmbr0 +qm set $VMID -boot order=ide0 + +# Start the VM +echo "Starting VM..." +qm start $VMID +``` +At first few lines of the script you can change ``local-lvm`` to change storage on your Proxmox and the script will import VM to that storage. + +And make it executable: + +```bash +chmod +x ./import.sh +``` + +Now we are ready to import, you can import VM using this command: + +```bash +./import.sh NAME-OF-VM NUMBER-OF-VM +``` +You need to use exact name of the VM from VMware and NUMBER-FOR-ROXMOX is required for proxmox. If you dont know what number to use then just use 100 and increase the number with each VM. + +### 4. Enjoy + +Congratulations! If you did everything right the VM will export and inport automatically and start when the process ends. \ No newline at end of file