Сейчас у меня реализовано так, что при заходе на страницу у меня коннектится по SSH к устройству, после этого я могу выполнять любые действия, но уже без коннекта. Использую paramiko. В коде выглядит примерно вот так
client = paramiko.SSHClient()
def connect(ip, port, user, pass):
client = paramiko.connect()#и так далее
def ls():
client.exec_command('ls')# и так далее
Соотвественно переходим на другую страницу(с другим клиентом) получем новый коннект, и любые комманды работают с ним.
Минусы в том что каждый раз при ребуте страницы происходит коннект, коннект не закрывается и поэтому на устройстве накапливается большое кол-во соединений.
Хотелось бы сделать как-то по уму это. Например когда поднимается сервер, происходит коннект ко всем клиентам с разными названиями переменной=разными коннектами(вопрос, как это реализовать? как потом в функции вызвать выполнение комманды без коннекта?). Так же хотелось бы использовать Celery что-бы все это работало в фоне, и при коннекте(например клиент офлайн, даже если ставить таймаут 3 секунды то сервер висит 3 секунды).
Вариант connect - > command -> connect.close() как по мне кажется слишком долгим.
Используется около 7 SSH подключений
Вопрос в том как будет лучше это реализовать?