пожалуйста, правильно ли я понимаю концепцию автоматического деплоя:
1. Есть 3 ноды: Gitlab, Gitlab Runner и целевой сервер
2. Gitlab при коммите вызывает Gitlab Runner и он выполняет pipeline
3. После успешного выполнения pipeline есть deploy, который с помощью SSH выполняет какие-то команды на целевом сервере (например, скачивание образа и поднятие контейнера с этим образом)?
по п3 - что в пайплайне будет написано в качестве этапа деплоя то и будет деплоем. В остальном - всё так
А насколько корректно логиниться на сервер через ssh и выполнять команды на этапе деплоя? Есть ли какие-то более элегантные инструменты?
А как иначе сервер в рамках пайплайна должен узнать о том, что ему надо обновки на себя загрузить? Конечно по ссш ходить - нормально. Приватный ключ от сервера - в гитлабе может хранится в районе переменных.
тоже правильно, спасибо!
Обсуждают сегодня