diff --git a/vmcreate1.sh b/vmcreate1.sh index 877024a..86bc934 100644 --- a/vmcreate1.sh +++ b/vmcreate1.sh @@ -14,7 +14,6 @@ mkdir $path #REMOVE AFTER CORRECT PATH!!!!!!!! node=3 size=50 file="hosts" -pubkey="pub.key" show_help(){ echo 'Usage:' @@ -94,7 +93,9 @@ mksnippet (){ phash=$(cat $password | mkpasswd -m sha-256 -s) sed -i "s|.*password.*| - ${phash}|" "$snippet" fi - sed -i "s|.*ssh-rsa.*| - (cat ${pubkey})|" "$snippet" + if [[ -v $pubkey]]; then + sed -i "s|.*ssh-rsa.*| - (cat ${pubkey})|" "$snippet" + fi echo "Snippet $snippet created" } @@ -198,19 +199,39 @@ if [[ $# -ne 0 ]]; then fi # Проверяем ключ -if [[ ! -e "$pubkey" ]]; then - input=y - echo "Public key does not exist. Generate new pair? y/n" - read input - case $input in - 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."; exit 6;; - N) echo "Public key is necessary to continue. Please specify or generate new pair."; exit 6;; - *) echo "Use '-h' flag for help"; exit 6;; - esac +if [[ -v $pubkey ]]; then + if ! [[ -e "$pubkey" ]]; then + input=y + echo "You sbecified public key but it does not exist. Generate new pair? y/n" + read input + case $input in + 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 use default, specify or generate new pair."; exit 6;; + N) echo "Public key is necessary to continue. Please use default, specify or generate new pair."; exit 6;; + *) echo "Use '-h' flag for help"; exit 6;; + esac + fi +else + read -p "Public key not specified. Use default? Enter to continue or Ctrl+C to abort" fi +# Проверяем, что нет ВМ в списке и нет сниппетов +for line in $(cat hosts.tmp) +do + ip=$(echo -n "$line" | cut -d ',' -f 1) + vmid=$(get_vmid "$ip") + snippet= + if [[ (qm status "$vmid") ]]; then + echo "VM $vmid exists. Aborting" + exit 9 + elif [[ -e "$snippet" ]]; then + echo "Snippet $snippet exists. Aborting" + exit 9 + fi +done + + ###DEBUG 1 echo "DEBUG File hosts.tmp:" cat hosts.tmp; echo