Files
SnarfCode/scripts/upgrade_zabbix.py

36 lines
1.4 KiB
Python

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()