feat: add administrative and deployment scripts for infrastructure management
This commit is contained in:
55
scripts/execute_housekeeping.py
Normal file
55
scripts/execute_housekeeping.py
Normal file
@@ -0,0 +1,55 @@
|
||||
import paramiko
|
||||
import sys
|
||||
|
||||
sys.stdout.reconfigure(encoding='utf-8')
|
||||
|
||||
key_path = r"C:\Users\Snarf\.ssh\id_ed25519_snarfnet"
|
||||
|
||||
def run_ssh(host, cmds, desc):
|
||||
print(f"\n=======================================================")
|
||||
print(f"[{desc}] Connecting to {host}...")
|
||||
print(f"=======================================================")
|
||||
c = paramiko.SSHClient()
|
||||
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||
c.connect(host, username="root", key_filename=key_path, timeout=15)
|
||||
for cmd in cmds:
|
||||
print(f"\n>>> Running on {host}: {cmd}")
|
||||
stdin, stdout, stderr = c.exec_command(cmd)
|
||||
out = stdout.read().decode('utf-8')
|
||||
err = stderr.read().decode('utf-8')
|
||||
if out: print(out.strip())
|
||||
if err: print("ERR:", err.strip())
|
||||
c.close()
|
||||
|
||||
# 1. Aerodrome Master (140.44.4.11)
|
||||
aero_cmds = [
|
||||
# Take post-upgrade etcd snapshot
|
||||
"k3s etcd-snapshot save --name post-upgrade-v2.15.3-final",
|
||||
# List snapshots to verify
|
||||
"k3s etcd-snapshot ls | tail -n 5",
|
||||
# Clean up temporary rancher dirs in /tmp
|
||||
"rm -rf /tmp/rancher-* /tmp/rancher_upgrade* /tmp/chart* /tmp/extracted*",
|
||||
# Prune completed helm operations in cattle-system
|
||||
"k3s kubectl -n cattle-system delete pod -l helm.cattle.io/chart=rancher --field-selector status.phase=Succeeded 2>/dev/null || true",
|
||||
"k3s kubectl -n cattle-system delete pod -l app.kubernetes.io/managed-by=Helm --field-selector status.phase=Succeeded 2>/dev/null || true",
|
||||
# Check cattle-system pods
|
||||
"k3s kubectl -n cattle-system get pods"
|
||||
]
|
||||
|
||||
run_ssh("140.44.4.11", aero_cmds, "Aerodrome Master")
|
||||
|
||||
# 2. Spaceport Master (140.44.4.41)
|
||||
spaceport_cmds = [
|
||||
# Take post-upgrade etcd snapshot
|
||||
"k3s etcd-snapshot save --name post-upgrade-spaceport-final",
|
||||
# List snapshots to verify
|
||||
"k3s etcd-snapshot ls | tail -n 5",
|
||||
# Prune completed system agent upgrader and helm pods
|
||||
"k3s kubectl -n cattle-system delete pod -l app=system-agent-upgrader --field-selector status.phase=Succeeded 2>/dev/null || true",
|
||||
"k3s kubectl -n cattle-system delete pod --field-selector status.phase=Succeeded 2>/dev/null || true",
|
||||
# Check cattle-system pods
|
||||
"k3s kubectl -n cattle-system get pods"
|
||||
]
|
||||
|
||||
run_ssh("140.44.4.41", spaceport_cmds, "Spaceport Master")
|
||||
|
||||
Reference in New Issue
Block a user