import paramiko def fix_argo(): # 1. Update on swm01 (140.44.4.71) ssh1 = paramiko.SSHClient() ssh1.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh1.connect('140.44.4.71', username='snarf', key_filename=r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet', timeout=10) print("--- Backing up SQLite DB and 39.conf ---") cmd_backup = """ sudo docker exec $(sudo docker ps -q --filter 'name=nginx-proxy-manager_app') sh -c " cp /data/database.sqlite /data/database.sqlite.bak.argo && cp /data/nginx/proxy_host/39.conf /data/nginx/proxy_host/39.conf.bak " """ stdin, stdout, stderr = ssh1.exec_command(cmd_backup) print("Backup stdout:", stdout.read().decode()) print("Backup stderr:", stderr.read().decode()) print("--- Updating SQLite DB ---") cmd_db = """ sudo docker exec $(sudo docker ps -q --filter 'name=nginx-proxy-manager_app') sh -c " python3 -c \\\"import sqlite3; con = sqlite3.connect('/data/database.sqlite'); cur = con.cursor(); cur.execute('UPDATE proxy_host SET forward_host=\\\'140.44.4.62\\\' WHERE id=39'); con.commit(); con.close(); print('DB updated successfully')\\\" " """ stdin, stdout, stderr = ssh1.exec_command(cmd_db) print("DB stdout:", stdout.read().decode()) print("DB stderr:", stderr.read().decode()) print("--- Updating 39.conf ---") cmd_conf = """ sudo docker exec $(sudo docker ps -q --filter 'name=nginx-proxy-manager_app') sh -c " sed -i 's/140.44.4.51/140.44.4.62/g' /data/nginx/proxy_host/39.conf " """ stdin, stdout, stderr = ssh1.exec_command(cmd_conf) print("Conf sed stdout:", stdout.read().decode()) print("Conf sed stderr:", stderr.read().decode()) print("--- Reloading NGINX on swm01 ---") stdin, stdout, stderr = ssh1.exec_command("sudo docker exec $(sudo docker ps -q --filter 'name=nginx-proxy-manager_app') nginx -s reload") print("Reload swm01 stdout:", stdout.read().decode()) print("Reload swm01 stderr:", stderr.read().decode()) ssh1.close() # 2. Reload on swm02 (140.44.4.72) ssh2 = paramiko.SSHClient() ssh2.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh2.connect('140.44.4.72', username='snarf', key_filename=r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet', timeout=10) print("--- Reloading NGINX on swm02 ---") stdin, stdout, stderr = ssh2.exec_command("sudo docker exec $(sudo docker ps -q --filter 'name=nginx-proxy-manager_app') nginx -s reload") print("Reload swm02 stdout:", stdout.read().decode()) print("Reload swm02 stderr:", stderr.read().decode()) ssh2.close() if __name__ == '__main__': fix_argo()