Update vmcreate1.sh

This commit is contained in:
2025-10-25 11:03:50 +00:00
parent 4ce196e1c0
commit 039fe4cf90

View File

@@ -52,15 +52,23 @@ fi
# Если заданы аргументы И файл
if [[ $# -ne 0 && -v file ]]; then echo "Please enter file OR arguments. Use '-f' flag for help"; exit 0; fi
#Проверка файла на соответствие шаблону IPv4 адреса и hostname
#Проверка файла на соответствие шаблону IPv4 адреса и hostname, создаём временный файл из валидных строк
if [ -e $file ]; then
touch hosts.tmp
echo -n "" > hosts.tmp
for line in $(<$file); do
ipcheck (echo $line | cut -d '.' -f 1)
ipcheck (echo $line | cut -d '.' -f 1)
if [ $? -ne 0 ]; then
echo "$ip is not a valid IPv4 address (10.10.*.*). Skipping this line."
hostcheck (echo $line | cut -d '.' -f 2)
done
fi
# Если заданы аргументы, то создаем временный файл
if [ $# -ne 0 ] then
touch hosts.tmp
echo -n "" > hosts.tmp
for arg in "$@"; do
ipcheck "$arg"
if [ $? -eq 0 ]
@@ -71,12 +79,12 @@ if [ $# -ne 0 ] then
printf "%03d\n" "$(echo -n $arg | cut -d '.' -f 4)" >> ./hosts.tmp
echo >> ./hosts.tmp
else
echo "Argument $arg is not valid IP address (10.10.*.*). Using next argument."
echo "Argument $arg is not a valid IPv4 address (10.10.*.*). Using next argument."
fi
done
fi
ip_check() {
ipcheck() {
# Функция для проверки IP адреса по шаблону 10.10.*.*, написана гуглом
local ip=$1
local stat=1
@@ -94,6 +102,10 @@ ip_check() {
IFS=$oldIFS
}
hostcheck (){
$1
}
#Проверяем ключ
if [ -v pubkey ]; then
if [[ ! -f pubkey ]]; then
@@ -125,7 +137,7 @@ embed_key(){
for line in $(<$file)
for line in $(<.hosts.tmp)
do
ip=$(echo $line | cut -d ' ' -f 1)
vlan=$(echo $ip | cut -d '.' -f 3)
@@ -148,22 +160,19 @@ do
qm cloudinit update $vmnum
qm start $vmnum
echo "VMs from $1 successfully created"
if [ haadd ]
if [ -v harule ]
then
ha-manager add vm:$vmnum --state started --max_relocate 2
ha-manager rules add node-affinity $ha_rule --resources vm:$vmnum --nodes pve1,pve2,pve3 --strict 1
ha-manager rules add node-affinity $harule --resources vm:$vmnum --nodes pve1,pve2,pve3 --strict 1
# ОБЯЗАТЕЛЬНО ПРОВЕРИТЬ КОМАНДУ!!!
fi
echo "HA rules added"
done
# Финальная часть
if [ -e hosts.tmp]
then
rm hosts.tmp
fi
rm hosts.tmp
if [ -v $privkey ]
then
echo "Generated private key $privkey"
echo "\nGenerated private key $privkey"
echo "SAVE IT IMMEDIATELY!!!"
fi