Files
SnarfCode/scripts/fix_argo_npm.py

59 lines
2.6 KiB
Python

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