Я использую капли DigitalOcean для непрерывной интеграции.
Каждый раз, когда кто-то что-то помещает в наш репозиторий Github, создается капля. Затем Дженкинс (на отдельной капле) подключается через ssh к вновь созданной капле и запускает сценарий оболочки, который построит и протестирует проект.
Изменения Github -> Jenkins (на капле A) -> Сборка / тесты (на новой капле X)
Изменения Github -> Jenkins (на капле A) -> Сборка / тесты (на новой капле Y)
Изменения Github -> Jenkins (на капле A) -> Сборка / тесты (на новой капле Z)
Проблема в том, что случайно созданная капля теряет связь с тем, к чему она пыталась подключиться во время сборки. Например, 2 из 10 капель с одинаковым содержимым завершатся ошибкой во время выполнения команды "git pull" с таким сообщением:
"ssh: connect to host github.com port 22: Connection timed out"
or
"[ComposerDownloaderTransportException] The "https://api.github.com/repos/symfony/symfony/zipball/d3646cc6875c214d211001e0673ec9e91b5f2da7" file could not be downloaded: failed to open stream: Connection timed out "
Нет правил iptables, и UFW не включен для этих капель. Что могло случайно заблокировать подключение к этим сервисам?
Какие-либо предложения ?
[РЕДАКТИРОВАТЬ]
Чтобы уточнить
- Это произошло случайным образом во время сборки, первая команда «git clone» могла быть успешной, но другая «git clone» могла потерпеть неудачу через 2 минуты после этого.