Advertisement
Guest User

Untitled

a guest
Jan 26th, 2022
39
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import getpass
  2. import os
  3. import subprocess
  4. import json
  5. import requests
  6. from shlex import split
  7. #Введите имя сервера
  8. NameProx = input('Введите имя сервера \n')
  9. #Введите имя ноды, если есть подчиненый сервер (иначе оставьте пустым, тогда имя ноды станет равным имени сервера
  10. NameNode = input('Введите имя ноды, если есть подчиненый сервер (иначе оставьте пустым, тогда имя ноды станет равным имени сервера) \n')
  11. #Введите ID виртуальной машины
  12. IdVir = input('Введите ID виртуальной машины \n')
  13. #Введите имя пользователя
  14. ValU = input('Введите имя пользователя \n')
  15. #Введите пароль
  16. ValPass = getpass.getpass('Введите пароль \n')
  17. #print (NameProx, IdVir, ValU, ValPass)
  18. if (NameProx is ''):
  19.     NameProx="proxserv"
  20. if (NameNode is ''):
  21. #   NameNode=NameProx
  22.     Tx = NameProx
  23.     Rx = subprocess.run(["nmblookup", "-A", Tx], stdout=subprocess.PIPE, text=True, input="")
  24.     Rx1 = Rx.stdout
  25.     Rx2 = split(Rx1)
  26.     NameNode = Rx2[5].lower()
  27. if (IdVir is ''):
  28.     IdVir="100"
  29. if (ValU is ''):
  30.     WhoamiD = subprocess.run(["whoami"], stdout=subprocess.PIPE, text=True, input="")
  31.     ShellU = WhoamiD.stdout
  32.     ValU=ShellU.strip()
  33. if (ValPass is ''):
  34.     ValPass=''
  35. print ("На сервере", NameProx, ",на ноде", NameNode, "подлючаемся к VM", IdVir, "от имени пользователя", ValU)
  36. print ("Передаю параметры для запроса в curl")
  37. CurlPar1 ="username="+ValU+"@pam&password="+ValPass
  38. CurlPar2 = "https://"+NameProx+":8006/api2/json/access/ticket"
  39. CurlData = subprocess.run(["curl", "-f", "-s", "-S", "-k", "-d", CurlPar1, CurlPar2], stdout=subprocess.PIPE, text=True, input="")
  40. #print (CurlData.stdout)
  41. CurlFind = CurlData.stdout
  42. jss=json.loads(CurlFind)
  43. #print ("**************************")
  44. ticket = jss['data']['ticket']
  45. CSRF = jss['data']['CSRFPreventionToken']
  46. #print (jss['data']['ticket'])
  47. #print (jss['data']['CSRFPreventionToken'])
  48. CurlPar1 ="PVEAuthCookie=" + ticket.strip()
  49. CurlPar2 ="CSRFPreventionToken: " + CSRF.strip()
  50. CurlPar3 ="https://"+NameProx+":8006/api2/spiceconfig/nodes/"+NameNode+"/qemu/"+IdVir+"/spiceproxy"
  51. CurlPar4 ="proxy="+NameProx
  52. #print ("######")
  53. #print (CurlPar1)
  54. #print (CurlPar2)
  55. #print (CurlPar3)
  56. #print (CurlPar4)
  57. #print ("Получаем параметры для файла подключения")
  58. CurlDataFin = subprocess.run(["curl", "-f", "-s", "-S", "-k", "-b", CurlPar1, "-H", CurlPar2, CurlPar3, "-d", CurlPar4], stdout=subprocess.PIPE, text=True, input="")
  59. #print (CurlDataFin.stdout)
  60.  
  61. FinalGame1 = CurlDataFin.stdout
  62. FinalGame = FinalGame1.strip()
  63. fileVar = open("/home/korolevsa/tmp/c.vv", "w")
  64. fileVar.write(FinalGame)
  65. fileVar.close()
  66. subprocess.run(["remote-viewer", "/home/korolevsa/tmp/c.vv"], stdout=subprocess.PIPE, text=True, input="")
  67.  
  68.  
Advertisement
RAW Paste Data Copied
Advertisement