From 0c6ad17b907a2028538404a3246b4fd7442ef57b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9=20=D0=91=D0=B0?= =?UTF-8?q?=D0=B4=D0=BE=D0=B2=D1=81=D0=BA=D0=B8=D0=B9?= Date: Wed, 25 Mar 2026 15:23:13 +0000 Subject: [PATCH] Add wflcreate.sh --- wflcreate.sh | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 wflcreate.sh diff --git a/wflcreate.sh b/wflcreate.sh new file mode 100644 index 0000000..8d179c4 --- /dev/null +++ b/wflcreate.sh @@ -0,0 +1,56 @@ + #!/bin/bash + remove=false + while getopts "R" opt; do + case $opt in + R) remove=true;; + \?) echo "Invalid option."; exit 1;; + esac + done + + if $remove; then + # Сначала запрашиваем остановку ВСЕХ тачек, чтобы сэкономить время + for line in $(cat wfl_hosts) + do + ip=$(echo $line | cut -d ';' -f 1) + vmid=$(echo $ip | cut -d '.' -f 3,4 | sed 's/\.// ') + qm stop $vmid + done + # А теперь проверяем, что остановлена, и удаляем + for line in $(cat wfl_hosts) + do + ip=$(echo $line | cut -d ';' -f 1) + vmid=$(echo $ip | cut -d '.' -f 3,4 | sed 's/\.// ') + status=$(qm status $vmid | cut -d ' ' -f 2) + until [[ $status -eq "stopped" ]] + do + echo "Waiting for VM $vmid become stopped..." + sleep 1 + done + qm destroy $vmid --destroy-unreferenced-disks --purge + done + echo "Specified VMs REMOVED." + exit 0 + fi + + for line in $(cat wfl_hosts) + do + ip=$(echo $line | cut -d ';' -f 1) + hostname=$(echo $line | cut -d ';' -f 2) + vmid=$(echo $ip | cut -d '.' -f 3,4 | sed 's/\.// ') + qm clone 5000 $vmid --name $hostname --full + if [ $? -eq 0 ] + then echo "clone OK" + else "clone ERROR"; exit 1 + fi + qm set $vmid --tags 3,gfx + echo "args: -virtfs local,id=wfl,path=/mnt/pve/syno-tigra/shared/WFL,security_model=passthrough,mount_tag=wfl" >> /etc/pve/qemu-server/${vmid}.conf + ## preparing custom CloudInit snippets + cp ./wfl.yaml /mnt/pve/syno-tigra/snippets/${vmid}_user.yaml + sed -i "s/HOSTNAME/$hostname/g" /mnt/pve/syno-tigra/snippets/${vmid}_user.yaml + qm resize $vmid scsi0 +50G + qm set $vmid --cicustom "user=syno-tigra:snippets/${vmid}_user.yaml" + qm set $vmid --ipconfig0 ip=$ip/24,gw=10.10.35.1 + qm cloudinit update $vmid + qm start $vmid + done + echo "VMs from 'wfl_hosts' successfully created" \ No newline at end of file