и не могу никак найти. У меня есть проект на гитлабе, раннер собирает приложение на сервере.
Можно ли как-то потом его деплоить на другие сервера? Там деплой уровня раскидать собранные файлы по папкам и выполнить одну команду.
Пытался по ssh (в yml прописать ssh user@ip ‘commands’), раннер не дает подключиться к другому серверу.
В моем понимании идеальный вариант это так: есть раннер на промежуточном сервере, там собирается приложение, а при запуске пайплайна я указываю адрес сервака, на который хочу задеплоить. И его юзернейм/пасс, например. Или только адрес, но знаю, что у меня настроен ssh между промежуточным и итоговым серваками.
Это возможно вообще?
Если вопрос тупой, то прошу прощения.
Use ansible
можно по ssh без проблем, например так stages: - deploy deploy: stage: deploy image: greenatom/ssh-client when: manual script: - | echo "Init ssh" eval $(ssh-agent -s) echo "$STAGE_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null mkdir -p ~/.ssh chmod 700 ~/.ssh echo "${STAGE_DEPLOYMENT_SERVER_IP} deployment.server" >> /etc/hosts ssh-keyscan -p ${STAGE_DEPLOYMENT_SERVER_PORT} deployment.server > ~/.ssh/known_hosts chmod 644 ~/.ssh/known_hosts echo "Starting deploy to test ..." scp -P ${STAGE_DEPLOYMENT_SERVER_PORT} ./docker-compose.yml ./update.sh ${STAGE_DEPLOYMENT_USER}@deployment.server:~/ ssh -p ${STAGE_DEPLOYMENT_SERVER_PORT} ${STAGE_DEPLOYMENT_USER}@deployment.server "./update.sh"
Не понимаю, в чём проблема, у нас примерно так и сделано
Обсуждают сегодня