36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
import paramiko
|
|
import sys
|
|
import datetime
|
|
|
|
sys.stdout.reconfigure(encoding='utf-8')
|
|
|
|
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
|
|
clusters = [
|
|
("aerodrome", "140.44.4.11"),
|
|
("spaceport", "140.44.4.41")
|
|
]
|
|
|
|
for name, ip in clusters:
|
|
print(f"[{name.upper()}] Connecting to {ip}...")
|
|
ssh = paramiko.SSHClient()
|
|
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
ssh.connect(ip, username='root', key_filename=r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet', timeout=10)
|
|
|
|
cmd = f"k3s etcd-snapshot save --name pre-upgrade-{name}-{timestamp}"
|
|
print(f"[{name.upper()}] Executing: {cmd}")
|
|
stdin, stdout, stderr = ssh.exec_command(cmd)
|
|
out = stdout.read().decode().strip()
|
|
err = stderr.read().decode().strip()
|
|
if out:
|
|
print(f"[{name.upper()}] STDOUT: {out}")
|
|
if err:
|
|
print(f"[{name.upper()}] STDERR: {err}")
|
|
|
|
check_cmd = "k3s etcd-snapshot ls"
|
|
stdin, stdout, stderr = ssh.exec_command(check_cmd)
|
|
print(f"[{name.upper()}] Recent Snapshots:\n" + stdout.read().decode().strip())
|
|
|
|
ssh.close()
|
|
print("-" * 50)
|