Update vmcreate1.sh

This commit is contained in:
2025-10-26 07:01:18 +00:00
parent 021f9e9d62
commit c63483cb01

View File

@@ -4,7 +4,8 @@
# Сделать добавление кастомного полльзователя с паролем # Сделать добавление кастомного полльзователя с паролем
# Сделать замену тега влан # Сделать замену тега влан
# Сделать проверку наличия ВМ перед клонированием. # Сделать проверку наличия ВМ перед клонированием.
# Добавить переезд на ноду, выбор ноды # Добавить переезд на ноду, выбор ноды. Статистика загрузки нод - в хелп.
# Добавить тег прокса
# ИЗУЧИТЬ!!!! /usr/share/pve-docs/examples/guest-example-hookscript.pl # ИЗУЧИТЬ!!!! /usr/share/pve-docs/examples/guest-example-hookscript.pl
storage="syno-tigra" storage="syno-tigra"
@@ -39,6 +40,11 @@ while getopts "a:f:h" opt; do
esac esac
done done
# Вывод переменных для дебага:
if [[ -v file ]]; then echo "File: $file"; fi
if [[ -v pubkey ]]; then echo "Public key: $pubkey"; fi
if [[ -v username ]]; then echo "User: $file"; fi
# Если файл не задан, но флаг есть # Если файл не задан, но флаг есть
if [[ $# -eq 0 && -v $file && ! -f $file ]]; then if [[ $# -eq 0 && -v $file && ! -f $file ]]; then
input=y input=y
@@ -50,11 +56,11 @@ if [[ $# -eq 0 && -v $file && ! -f $file ]]; then
N) read -p "Enter file name: " file;; N) read -p "Enter file name: " file;;
*) echo "Use '-f' flag for help"; exit 0;; *) echo "Use '-f' flag for help"; exit 0;;
esac esac
if [ ! -f hosts ]; then echo "File `hosts` does not exist. Exiting."; exit 0; fi if [ ! -f file ]; then echo "File `$file` does not exist. Exiting."; exit 1; fi
fi fi
# Если заданы аргументы И файл # Если заданы аргументы И файл
if [[ $# -ne 0 && -v file ]]; then echo "Please enter file OR arguments. Use '-f' flag for help"; exit 0; fi if [[ $# -ne 0 && -v file ]]; then echo "Please enter file OR arguments. Use '-f' flag for help"; exit 2; fi
# Проверка файла на соответствие шаблону IPv4 адреса и hostname, создаём временный файл из валидных строк # Проверка файла на соответствие шаблону IPv4 адреса и hostname, создаём временный файл из валидных строк
if [ -e $file ]; then if [ -e $file ]; then
@@ -71,12 +77,12 @@ if [ -e $file ]; then
else else
echo "Hostname `$hostname` is not valid. Should contain only letters, numbers and dash. Aborting." echo "Hostname `$hostname` is not valid. Should contain only letters, numbers and dash. Aborting."
rm hosts.tmp rm hosts.tmp
exit 5 exit 3
fi fi
else else
echo "`$ip` is not a valid IPv4 address (10.10.*.*). Aborting." echo "`$ip` is not a valid IPv4 address (10.10.*.*). Aborting."
rm hosts.tmp rm hosts.tmp
exit 6 exit 4
fi fi
done done
fi fi
@@ -138,12 +144,12 @@ if [ -v pubkey ]; then
Y) read -p "Enter name for your private key: " privkey && keypair_generate ("$privkey");; Y) read -p "Enter name for your private key: " privkey && keypair_generate ("$privkey");;
n) echo "Public key is necessary to continue. Please specify or generate new pair.";; n) echo "Public key is necessary to continue. Please specify or generate new pair.";;
N) echo "Public key is necessary to continue. Please specify or generate new pair.";; N) echo "Public key is necessary to continue. Please specify or generate new pair.";;
*) echo "Use '-h' flag for help"; exit 0;; *) echo "Use '-h' flag for help"; exit 6;;
esac esac
fi fi
else else
pubkey="key.pub" pubkey="key.pub"
if [[ ! -e key.pub ]]; then echo "`key.pub` does not exist. Please use `-k` flag to specify public key."; exit 0; fi if [[ ! -e key.pub ]]; then echo "`key.pub` does not exist. Please use `-k` flag to specify public key."; exit 7; fi
fi fi
keypair_generate (){ keypair_generate (){
@@ -176,7 +182,7 @@ do
qm clone 5000 $vmnum --name $hostname --full &>/dev/null qm clone 5000 $vmnum --name $hostname --full &>/dev/null
if [ $? -eq 0 ] if [ $? -eq 0 ]
then echo "OK" then echo "OK"
else "ERROR"; exit 1 else "ERROR"; exit 8
fi fi
qm set $vmnum --tags $node,gfx qm set $vmnum --tags $node,gfx
mksnippet mksnippet