import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('140.44.4.41', username='root', key_filename=r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet', timeout=10) def run(cmd): print(f"=== {cmd} ===") _, out, err = ssh.exec_command(cmd) res = out.read().decode().strip() if res: print(res) e = err.read().decode().strip() if e: print("ERR:", e) print("[*] Upgrading Zabbix stack to ubuntu-7.0.32 on Spaceport...") run("kubectl set image deployment/zabbix-zabbix-server zabbix-server=zabbix/zabbix-server-pgsql:ubuntu-7.0.32 zabbix-agent=zabbix/zabbix-agent2:ubuntu-7.0.32 -n monitoring") run("kubectl set image deployment/zabbix-zabbix-web zabbix-web=zabbix/zabbix-web-nginx-pgsql:ubuntu-7.0.32 -n monitoring") run("kubectl set image deployment/zabbix-zabbix-webservice zabbix-webservice=zabbix/zabbix-web-service:ubuntu-7.0.32 -n monitoring") print("[*] Awaiting rollouts...") run("kubectl rollout status deployment/zabbix-zabbix-server -n monitoring --timeout=180s") run("kubectl rollout status deployment/zabbix-zabbix-web -n monitoring --timeout=180s") run("kubectl rollout status deployment/zabbix-zabbix-webservice -n monitoring --timeout=180s") print("[*] Checking pod statuses...") run("kubectl get pods -n monitoring -o wide") print("[*] Verifying HTTP endpoint...") run("curl -s -I http://140.44.4.51:8888 | head -n 8") ssh.close()