From: Daan De Meyer Date: Sun, 6 Aug 2023 10:17:22 +0000 (+0200) Subject: Move run_ssh() to run_qemu() X-Git-Tag: v15~27^2 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F1745%2Fhead;p=thirdparty%2Fmkosi.git Move run_ssh() to run_qemu() The ssh verb only works when the machine is booted with qemu so they belong together. --- diff --git a/mkosi/__init__.py b/mkosi/__init__.py index 39f51ee2f..a959cc743 100644 --- a/mkosi/__init__.py +++ b/mkosi/__init__.py @@ -41,7 +41,7 @@ from mkosi.log import complete_step, die, log_step from mkosi.manifest import Manifest from mkosi.mounts import mount_overlay, mount_passwd, mount_tools from mkosi.pager import page -from mkosi.qemu import copy_ephemeral, machine_cid, run_qemu +from mkosi.qemu import copy_ephemeral, run_qemu, run_ssh from mkosi.run import become_root, bwrap, chroot_cmd, init_mount_namespace, run from mkosi.state import MkosiState from mkosi.tree import copy_tree, install_tree, move_tree, rmtree @@ -1579,22 +1579,6 @@ def run_shell(args: MkosiArgs, config: MkosiConfig) -> None: run(cmdline, stdin=sys.stdin, stdout=sys.stdout, env=os.environ, log=False) -def run_ssh(args: MkosiArgs, config: MkosiConfig) -> None: - cmd = [ - "ssh", - # Silence known hosts file errors/warnings. - "-o", "UserKnownHostsFile=/dev/null", - "-o", "StrictHostKeyChecking=no", - "-o", "LogLevel=ERROR", - "-o", f"ProxyCommand=socat - VSOCK-CONNECT:{machine_cid(config)}:%p", - "root@mkosi", - ] - - cmd += args.cmdline - - run(cmd, stdin=sys.stdin, stdout=sys.stdout, env=os.environ, log=False) - - def run_serve(config: MkosiConfig) -> None: """Serve the output directory via a tiny embedded HTTP server""" diff --git a/mkosi/qemu.py b/mkosi/qemu.py index a80aa2dd4..1bae0e606 100644 --- a/mkosi/qemu.py +++ b/mkosi/qemu.py @@ -316,3 +316,19 @@ def run_qemu(args: MkosiArgs, config: MkosiConfig) -> None: if status := int(notifications.get("EXIT_STATUS", 0)): raise subprocess.CalledProcessError(status, cmdline) + + +def run_ssh(args: MkosiArgs, config: MkosiConfig) -> None: + cmd = [ + "ssh", + # Silence known hosts file errors/warnings. + "-o", "UserKnownHostsFile=/dev/null", + "-o", "StrictHostKeyChecking=no", + "-o", "LogLevel=ERROR", + "-o", f"ProxyCommand=socat - VSOCK-CONNECT:{machine_cid(config)}:%p", + "root@mkosi", + ] + + cmd += args.cmdline + + run(cmd, stdin=sys.stdin, stdout=sys.stdout, env=os.environ, log=False)