#!/bin/bash while read line do #echo $line ip=$(echo $line | cut -d ' ' -f 1) #echo "IP address: $ip" hostname=$(echo $line | cut -d ' ' -f 2) #echo "Hostname: $hostname" vmnum=35$(echo $ip | cut -d '.' -f 4) #echo "VM number: $vmnum" qm clone 5000 $vmnum --name $hostname --full if [ $? -eq 0 ] then echo "clone OK" else "clone ERROR"; exit 1 fi qm set $vmnum --tags 3,gfx ## preparing custom CloudInit snippets cp ./user.yaml /mnt/pve/syno-tigra/snippets/${vmnum}_user.yaml cp ./network.yaml /mnt/pve/syno-tigra/snippets/${vmnum}_network.yaml sed -i "s/HOSTNAME/$hostname/g" /mnt/pve/syno-tigra/snippets/${vmnum}_user.yaml sed -i "s/IP/$ip/g" /mnt/pve/syno-tigra/snippets/${vmnum}_network.yaml mac=$(cat /etc/pve/qemu-server/${vmnum}.conf | grep net0 | cut -d ',' -f 1 | cut -d '=' -f 2) sed -i "s/MAC/$mac/g" /mnt/pve/syno-tigra/snippets/${vmnum}_network.yaml if [ -e "./gfx.pub" ] then echo "key OK" else echo "key ERROR. Put the public key named 'gfx.pub'"; exit 2 fi qm resize $vmnum scsi0 +50G qm set $vmnum --cicustom "user=syno-tigra:snippets/${vmnum}_user.yaml,network=syno-tigra:snippets/${vmnum}_network.yaml" --sshkey ./gfx.pub qm cloudinit update $vmnum qm start $vmnum if [ $? -eq 0 ] then echo "VM successfully CREATED" else "ERROR creating VM"; exit 3 fi done < ./hosts