diff --git a/vmcreate1.sh b/vmcreate1.sh index 0b07cb8..ca7e5de 100644 --- a/vmcreate1.sh +++ b/vmcreate1.sh @@ -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 \ No newline at end of file