From 1d4b720cee98bddf5d633ef943522f9c9f7b1b75 Mon Sep 17 00:00:00 2001 From: Yannik Schmidt Date: Wed, 29 Oct 2025 17:54:42 +0100 Subject: [PATCH] feat: ssh config builder & fetcher --- .../build_ssh_config_on_workstation.py | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 helper_scripts/build_ssh_config_on_workstation.py diff --git a/helper_scripts/build_ssh_config_on_workstation.py b/helper_scripts/build_ssh_config_on_workstation.py new file mode 100644 index 0000000..e597902 --- /dev/null +++ b/helper_scripts/build_ssh_config_on_workstation.py @@ -0,0 +1,45 @@ +#!/usr/bin/python + +import sys +import subprocess +import os +import paramiko + +HOSTS = [ + "root@atlantishq.de", + "root@katzencluster.atlantishq.de", + "root@atlantis-helsinki.atlantishq.de" +] + +BASE_FILE = "~/.ssh/base_config" +MAIN_CONFIG = "~/.ssh/config" + +if __name__ == "__main__": + + contents = "" + for target in HOSTS: + + RUN_CMD = ["ssh", "-t", target , "cd /root/athq-vm-management/; python3 main.py"] + COPY_CMD = ["ssh", "-t", target, "cat /root/athq-vm-management/ssh_config_for_clients"] + + print("Doing", target, file=sys.stderr) + out = subprocess.run(RUN_CMD, capture_output=True, universal_newlines=True) + if out.returncode != 0: + print("failed (run command)!") + print(out.stderr) + sys.exit(1) + + out = subprocess.run(COPY_CMD, capture_output=True, universal_newlines=True) + if out.returncode != 0: + print("failed (cat command)!") + print(out.stderr) + sys.exit(1) + + contents += out.stdout + contents += "\n" + + with open(os.path.expanduser(BASE_FILE)) as f: + with open(os.path.expanduser(MAIN_CONFIG), "w") as fout: + fout.write(f.read()) + fout.write("\n") + fout.write(contents)