@delphikettle
Программирую в свободное от учёбы время

Какую либу лучше использовать для асинхронного хождения на хосты по ssh?

Имеются несколько хостов, на которые нужно периодически ходить и делать различные вещи по определенному алгоритму. Пробовал делать такое используя библиотеку parallel-ssh, но мне не совсем она понравилась, т.к. работает она по следующему принципу: создаётся соединение сразу со всеми хостами и потом команды выполняются одновременно на всех хостах, но часто возникают ситуации, когда нужно не бездумно запустить несколько команд, а нужно запускать разные действия в зависимости от ответа на хостах, но во-первых это неудобно проходиться каждый раз по массиву ответов, а во-вторых, эта либа запускает действия на всех хостах.
Также хочется чтобы либа поддерживала asyncio, т.к. весь проект держится на нём.
Идеальным для меня вариантом кажется использование обычной либы на asyncio для выполнения комманд по ssh, просто написать корутину которая ходила бы на хост и делала необходимые действия (в том числе в зависимости от ответа на предыдущие команды) и потом asyncio.gather корутины для каждого хоста. Пробовал для этого использовать эту либу asyncssh, но либо я глупый и не смог разобраться, либо она не держит сессию для каждой команды. Пробовал следующее: выполнил cd /some_dir, потом pwd и она вернула директорию по умолчанию (каталог пользователя), можно конечно каждый раз делать так cd /some_dir && some-command, но это какой-то костыль.
  • Вопрос задан
  • 197 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы