From 7c818dd9267e6d50e92eab6a88ee21c5b4132b7a Mon Sep 17 00:00:00 2001 From: pyarya Date: Sat, 17 Aug 2024 15:17:14 -0600 Subject: [PATCH 1/4] started some stuff --- build.py | 1 - 1 file changed, 1 deletion(-) diff --git a/build.py b/build.py index 387d8e9..962641b 100644 --- a/build.py +++ b/build.py @@ -1,3 +1,2 @@ from subprocess import Popen, PIPE -print("meow") -- 2.43.4 From c0f174f55166a75d844cbf0a428b4aa114e19362 Mon Sep 17 00:00:00 2001 From: pyarya Date: Sat, 17 Aug 2024 17:07:48 -0600 Subject: [PATCH 2/4] basic working build script --- build.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/build.py b/build.py index 962641b..a2c8458 100644 --- a/build.py +++ b/build.py @@ -1,2 +1,21 @@ from subprocess import Popen, PIPE +import os + +user = os.getlogin() +image = f"/home/{user}/safe/debian.qcow2" + + +initialize = [ + "qemu-system-x86_64", + "-enable-kvm", + "-m", "2G", + "-nic", "user,hostfwd=tcp::5555-:22", + "-drive", "file=%s,media=disk,if=virtio" % image, +# "-display", "sdl", +] + +Popen(["cp", "/home/chopper/safe/debian.qcow2", f"/home/{user}/nnnnndebian.qcow2"]) #copy the base image to a directory with everyones virtual machines. +Popen(initialize) + + -- 2.43.4 From 5e94d00a5c9f3ee4588a643a73dfa2ae9c2db9fb Mon Sep 17 00:00:00 2001 From: pyarya Date: Sat, 17 Aug 2024 17:22:29 -0600 Subject: [PATCH 3/4] build script update --- build.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/build.py b/build.py index a2c8458..c559fd4 100644 --- a/build.py +++ b/build.py @@ -8,14 +8,17 @@ image = f"/home/{user}/safe/debian.qcow2" initialize = [ "qemu-system-x86_64", "-enable-kvm", - "-m", "2G", - "-nic", "user,hostfwd=tcp::5555-:22", + "-m", "2G", # ram allocation + "-nic", "user,hostfwd=tcp::5555-:22", #forward port 5555 in host to port 22 in vm "-drive", "file=%s,media=disk,if=virtio" % image, -# "-display", "sdl", + +# "-nographic", +# "-serial", "mon:stdio", + + "-vga", "virtio", # i think this fixes resolution but idk yet + "-display", "sdl", ] -Popen(["cp", "/home/chopper/safe/debian.qcow2", f"/home/{user}/nnnnndebian.qcow2"]) #copy the base image to a directory with everyones virtual machines. +#Popen(["cp", "/home/chopper/safe/debian.qcow2", f"/home/{user}/nnnnndebian.qcow2"]) #copy the base image to a directory with everyones virtual machines. Popen(initialize) - - -- 2.43.4 From 4b2ab6794c0192a4b93cb2389e39671e1b2077f0 Mon Sep 17 00:00:00 2001 From: pyarya Date: Wed, 21 Aug 2024 19:35:32 -0600 Subject: [PATCH 4/4] made function and added nographic flag --- build.py | 51 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 15 deletions(-) diff --git a/build.py b/build.py index c559fd4..626c73f 100644 --- a/build.py +++ b/build.py @@ -1,24 +1,45 @@ from subprocess import Popen, PIPE import os +from pathlib import Path +import argparse -user = os.getlogin() -image = f"/home/{user}/safe/debian.qcow2" +def vm_start(nographic=False): + home = Path.home() + user = os.getlogin() + image_src = "var/lib/debian.qcow2" + vm_storage_location = f"/home/arvp/virtual_machines/{user}.qcow2" + image_dest = f"{home}/debian.qcow2" + initialize = [ + "qemu-system-x86_64", + "-enable-kvm", + "-m", "2G", # ram allocation + "-nic", "user,hostfwd=tcp::5555-:22", #forward port 5555 in host to port 22 in vm + "-drive", "file=%s,media=disk,if=virtio" % image_dest, -initialize = [ - "qemu-system-x86_64", - "-enable-kvm", - "-m", "2G", # ram allocation - "-nic", "user,hostfwd=tcp::5555-:22", #forward port 5555 in host to port 22 in vm - "-drive", "file=%s,media=disk,if=virtio" % image, + # "-nographic", + # "-serial", "mon:stdio", -# "-nographic", -# "-serial", "mon:stdio", + "-vga", "virtio", # i think this fixes resolution but idk yet + "-display", "sdl", + ] - "-vga", "virtio", # i think this fixes resolution but idk yet - "-display", "sdl", -] + if nographic==True: + initialize.append("-nographic") + initialize.append("-serial") + initialize.append("mon:stdio") -#Popen(["cp", "/home/chopper/safe/debian.qcow2", f"/home/{user}/nnnnndebian.qcow2"]) #copy the base image to a directory with everyones virtual machines. -Popen(initialize) + #copy the base image to a directory with everyones virtual machines. -n should not overwrite any existing vms. + #subprocess.run(["cp", "-n", image_src, vm_storage_location]) + Popen(initialize) +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description="ARVP Onboarding Virtual Machine Launcher! Don't use --nographic if you are in a tmux session. it might explode :3") + parser.add_argument( + "--nographic", + action="store_true", + help="Run QEMU in nographic mode (runs the VM embedded in your terminal instead of opening a new window)",) + + args = parser.parse_args() + vm_start(nographic=args.nographic) -- 2.43.4