Запускаю в Jenkins(е) Ansible play для выполнения шелл команды на удалённом хосте, команда выполняется долго, несколько часов. Вываливается ровно через 2 часа после запуска таски (или плея, там фактически 1 действие).
В ансибл конфиге попробовал увеличить:
[persistent_connection]
connect_timeout = 400
command_timeout = 400
думал, может эти параметры как-то влияют, но ,похоже, решение где-то в другом месте.
вот сама ошибка:
fatal: [hostname]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Shared connection to 10.10.10.2 closed.", "unreachable": true}
Удалённый хост, соединение с которым упало по UNREACHABLE жив и здоров, с хорошим аптаймом, ничего с ним не происходит. Проблема явно в превышении каких-то лимитов на соединение, но где это настроить, я не соображу. Если кто-то сталкивался - подскажите, какие есть варианты увеличить возможность держать активным соединение часами для одной и той же таски/плея в ансибл. Или, возможно, есть другой легковесный альтернативный инструмент, который железобетонно будет держать соединение при запуске шелл команды на удалённом хосте и который просто использовать в Jenkins pipeline. В идеале - решение для ансибл т.к. есть подготовительные действия, которые тоже придётся переносить на альтернативный инструмент, в случае чего.
Возможно, paramiko в python скрипте сможет держать соединение дольше, если кто-то проверял - тоже не плохой вариант был бы для меня.