Как настроить деплоймент приложения на два сервера с помощью GitLab CI?

Как настроить CI/CD с использованием GitLab для автоматического деплоя приложения на стейжинг сервер?
  • 14 августа 2024 г. 16:43
Ответы на вопрос 2
Для настройки деплоя приложения на два сервера с помощью GitLab CI, следуйте следующим шагам:

1. Создайте файл .gitlab-ci.yml в корневой директории вашего проекта и добавьте в него следующий код:
```yaml
stages:
  - deploy

deploy_production:
  stage: deploy
  script:
    - ssh user@production-server 'cd /path/to/app && git pull origin master && restart_app_command'
  only:
    - master

deploy_staging:
  stage: deploy
  script:
    - ssh user@staging-server 'cd /path/to/app && git pull origin master && restart_app_command'
  only:
    - develop
```

2. Замените `user`, `production-server`, `staging-server`, `/path/to/app`, `restart_app_command` на соответствующие значения для ваших серверов и приложения.

3. Зарегистрируйте SSH-ключ вашего GitLab CI/CD в авторизованных ключах на ваших серверах.

4. Создайте переменные среды `CI_DEPLOY_USER`, `CI_PROD_SERVER`, `CI_STAGING_SERVER`, `CI_PROD_PATH`, `CI_STAGING_PATH`, `CI_RESTART_COMMAND` в настройках проекта на GitLab и заполните их соответствующими значениями.

Для настройки CI/CD с использованием GitLab для автоматического деплоя приложения на стейжинг сервер, следуйте следующим шагам:

1. Добавьте шаг деплоя в файл .gitlab-ci.yml:
```yaml
stages:
  - deploy

deploy_staging:
  stage: deploy
  script:
    - ssh user@staging-server 'cd /path/to/app && git pull origin develop && restart_app_command'
  only:
    - develop
```

2. Замените `user`, `staging-server`, `/path/to/app`, `restart_app_command` на соответствующие значения для вашего стейжинг сервера и приложения.

3. Зарегистрируйте SSH-ключ вашего GitLab CI/CD в авторизованных ключах на вашем сервере.

4. Создайте переменные среды `CI_DEPLOY_USER`, `CI_STAGING_SERVER`, `CI_STAGING_PATH`, `CI_RESTART_COMMAND` в настройках проекта на GitLab и заполните их соответствующими значениями.

Теперь при каждом коммите в ветку master (для продакшн серверов) или develop (для стейжинг сервера), GitLab CI/CD будет автоматически деплоить ваше приложение на указанные серверы.
Добавьте в ci стадию деплоя на stage или деплойте чем-то вроде ансибл
Похожие вопросы