Update vmcreate1.sh
This commit is contained in:
106
vmcreate1.sh
106
vmcreate1.sh
@@ -132,70 +132,70 @@ if ! [[ $size -ge 10 && $size -le 500 ]]; then echo "Disk size increment shoud b
|
||||
# exit 1
|
||||
# fi
|
||||
|
||||
# Coздаём временный файл из проверенных строк
|
||||
# Создаём hosts.tmp из аргументов/файла, попутно проверяя данные
|
||||
# Если заданы И аргументы, И файл - сразу нахуй
|
||||
if [[ $# -ne 0 && -v $file ]]; then
|
||||
echo "Please use EITHER file OR arguments. Use '-h' flag for help"
|
||||
exit 3
|
||||
else
|
||||
# Если файл задан
|
||||
if [[ -v $file ]]; then
|
||||
# Но не существует, то нахуй
|
||||
if [[ ! -e "$file" ]];then
|
||||
echo "File $file does not exist. Aborting."
|
||||
exit 4
|
||||
fi
|
||||
else
|
||||
# А если не задан, то дефолтный. Если при этом есть аргументы, то в след. цикле будут использоваться они.
|
||||
file="hosts"
|
||||
fi
|
||||
# Если заданы аргументы
|
||||
if [[ $# -ne 0 ]]; then
|
||||
|
||||
|
||||
# Проверка файла на соответствие шаблону IPv4 адреса и hostname, создаём временный файл из валидных строк
|
||||
if [[ $# -eq 0 && -e "$file" ]]; then
|
||||
echo "DEBUG file: $file"
|
||||
touch hosts.tmp
|
||||
echo -n "" > hosts.tmp
|
||||
echo "DEBUG"
|
||||
cat "$file"
|
||||
for line in $(cat "$file"); do
|
||||
echo "DEBUG line:$line"
|
||||
ip=$(echo -n $line | cut -d ';' -f 1)
|
||||
hostname=$(echo -n $line | cut -d ';' -f 2)
|
||||
ipcheck "$ip"
|
||||
if [[ $? -eq 0 ]]; then
|
||||
hostcheck "$hostname"
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo $line >> hosts.tmp
|
||||
echo "DEBUG using arguments"
|
||||
touch hosts.tmp
|
||||
echo -n "" > hosts.tmp
|
||||
for arg in "$@"; do
|
||||
ipcheck "$arg"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -n "$arg;" >> ./hosts.tmp
|
||||
echo -n "vm" >> ./hosts.tmp
|
||||
get_vmid "$arg" >> hosts.tmp
|
||||
echo >> hosts.tmp
|
||||
else
|
||||
echo "Hostname $hostname is not valid. Should contain only letters, numbers and dash. Aborting."
|
||||
echo "Argument $arg is not a valid IPv4 address (10.10.*.*). Aborting."
|
||||
rm hosts.tmp
|
||||
exit 3
|
||||
exit 5
|
||||
fi
|
||||
else
|
||||
echo "$ip is not a valid IPv4 address (10.10.XXX.YYY). Aborting."
|
||||
rm hosts.tmp
|
||||
exit 4
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Если заданы аргументы, то создаем временный файл
|
||||
if [[ $# -ne 0 ]]; then
|
||||
echo "DEBUG using arguments"
|
||||
touch hosts.tmp
|
||||
echo -n "" > hosts.tmp
|
||||
for arg in "$@"; do
|
||||
ipcheck "$arg"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -n "$arg;" >> ./hosts.tmp
|
||||
echo -n "vm" >> ./hosts.tmp
|
||||
get_vmid "$arg" >> hosts.tmp
|
||||
echo >> hosts.tmp
|
||||
else
|
||||
echo "Argument $arg is not a valid IPv4 address (10.10.*.*). Aborting."
|
||||
rm hosts.tmp
|
||||
exit 5
|
||||
fi
|
||||
done
|
||||
fi
|
||||
done
|
||||
# А если нет, то файл.
|
||||
else
|
||||
echo "DEBUG using file: $file"
|
||||
touch hosts.tmp
|
||||
echo -n "" > hosts.tmp
|
||||
echo "DEBUG cat file"
|
||||
cat "$file"
|
||||
for line in $(cat "$file"); do
|
||||
echo "DEBUG line:$line"
|
||||
ip=$(echo -n $line | cut -d ';' -f 1)
|
||||
hostname=$(echo -n $line | cut -d ';' -f 2)
|
||||
ipcheck "$ip"
|
||||
if [[ $? -eq 0 ]]; then
|
||||
hostcheck "$hostname"
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo $line >> hosts.tmp
|
||||
else
|
||||
echo "Hostname $hostname is not valid. Should contain only letters, numbers and dash. Aborting."
|
||||
rm hosts.tmp
|
||||
exit 5
|
||||
fi
|
||||
else
|
||||
echo "$ip is not a valid IPv4 address (10.10.XXX.YYY). Aborting."
|
||||
rm hosts.tmp
|
||||
exit 5
|
||||
fi
|
||||
done
|
||||
fi
|
||||
# Закончили с вводными данными
|
||||
|
||||
# Проверяем ключ
|
||||
if [[ -v $pubkey ]]; then
|
||||
@@ -223,18 +223,19 @@ do
|
||||
snippet=
|
||||
if qm status "$vmid"; then
|
||||
echo "VM $vmid exists. Aborting"
|
||||
exit 9
|
||||
exit 7
|
||||
elif [[ -e "$snippet" ]]; then
|
||||
echo "Snippet $snippet exists. Aborting"
|
||||
exit 9
|
||||
exit 7
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
###DEBUG 1
|
||||
echo "DEBUG File hosts.tmp:"
|
||||
### DEBUG 1
|
||||
echo "DEBUG cat hosts.tmp:"
|
||||
cat hosts.tmp; echo
|
||||
###
|
||||
read -p "Script is ready to create $(cat hosts.tmp | wc -l) VMs. Press Enter"
|
||||
|
||||
for line in $(cat hosts.tmp)
|
||||
do
|
||||
@@ -259,7 +260,6 @@ do
|
||||
echo "TAG: $tag"
|
||||
echo "$snippet:"
|
||||
cat "$snippet"
|
||||
read -p "Press Enter"
|
||||
exit 100
|
||||
####
|
||||
echo -n "Now cloning VM $vmnum from a template....."
|
||||
|
||||
Reference in New Issue
Block a user