Задать вопрос
EnderStore
@EnderStore
Кодер-обыкновенный

.gitlab-ci.yml и гемор с ним .?

Всем привет.
Задолбался пробовать адекватно настроить .gitlab-ci.yml (перегуглил все, что можно)
Настроил SSH ключи, все сделал, все настроил и осталось настроить этот файлик
Нужно удалять все файлы из /home/webserver и заливать туда новые, во время процесса деплоя (CI / CD)
Сколько пытался настроить - не удается
  • Вопрос задан
  • 970 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@kalter1808
Предположим, у вас раннер настроен по дефолту. В этом случае используется билдинг в docker-контейнерах. О других экзекуторах здесь: https://docs.gitlab.com/runner/#selecting-the-executor
stages:
  - deploy

deploy_master:
  image: alpine
  stage: deploy  
  script:
    - apk update && apk upgrade
    - apk add openssh bash rsync
    - echo "====== Deploy to production server ======"
    - echo "====== Add target servers secret key ======"
    - mkdir ~/.ssh
    - echo $TARGET_SERVER_SECRET_KEY > ~/.ssh/id_rsa
    - chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
    - echo "====== Test ssh connection ======"
    - ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -T "root@target_server"
    - echo "====== Sync local and remote directory ======"
    - rsync -av -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --delete ./ "root@target_server:/home/webserver/"

only:
  - master

Чтобы это заработало, в настройках CI/CD в gitlab нужно установить переменную TARGET_SERVER_SECRET_KEY, записав в нее полностью ваш закрытый ssh ключ
Ответ написан
Комментировать
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Что-нибудь типа такого:

stages:
 - build

build:
    stage: build
    script:
- rm -rf /home/webserver/*
- cp -r * /home/webserver/
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы