Você está perdendo backquotes em torno do comando awk e as aspas duplas estão permitindo que $ 2 sejam interpolados pelo shell ao invés do awk. O servidor = linha deve ler:
server='awk "/$i/"' {print $2}' /home/dharmit/scripts/vmids'
As aspas duplas permitem que $ i seja interpolado pelo shell, que é o que você aparentemente deseja. As aspas simples impedem a interpolação de shell de $ 2. As backquotes fazem com que o comando awk seja executado e seu resultado seja transformado em uma string que se torna o valor da variável server
.