Деплой php сайта из GitLab на удалённый хостинг Leave a comment

В статье пойдёт речь о том как из GitLab сделать деплой на удалённый хостинг. В качестве целевой системы выбран сайт на платформе cms Bitrix.

И так что мы имеем:

  1. GitLab установленный и настроенный на своём локальном сервере. Сервер используется для разработки, а так же он является репозитарием различных git проектов.
  2. Сайт работающий на удалённом хостинге (пусть это будет Beget).
  3. В качестве cms – Bitrix
  4. В качестве deploy системы будет использован встроенный инструмент GitLab CI

В текущей статье не говорится о том как настроить и установить GitLab, а так же как создать там репозитарий и зарегистрировать пользователя.

Что потребуется предварительно сделать:

Добавить в GitLab специальных “бегунов”. Это обработчики которые будут выполнять наши инструкции после определённых действиях(т.е выполнять сам деплой проекта)

Чтобы создать “бегунка” перейдите в консоль сервера с GitLab:

Если команда выдаст ошибку, тогда дополнительно установите gitlab-runner в вашу систему

gitlab-runner во время создания нового “бегунка” задаст вопросы:

1. Вам нужно будет указать адрес вашего GitLab домена

2. На запрос токена – укажите токен из админки GitLab “Настройки” – “CI/CD” – “Обработчики заданий”

3. Описание можете не изменять

4. Теги: Укажите короткий тег на который будет реагировать “бегунок” при поиске заданий (например all)

Далее у вас появится в админке ваш обработчик(бегунок)

Создания бегунка GitLab

 

Далее необходимо задать системные переменные для подстановки в ваше сценарий деплоя. В нашем примере это:

  1. Адрес сервера/хостинга на котором лежит сайт (доступ по ssh)
  2. Имя пользователя ssh
  3. Пароль ssh
Системные переменные GitLab

 

После предварительной настройке (описанной выше) вам необходимо создать файл инструкций в корне вашего git проекта.

Название файла:

Содержимое:

Собственно сама процедура выгрузки на удалённый хостинг проходит при помощи последней команды

Операция обмена происходит при помощи консольной утилиты rsync, в качестве переменных SSH_TEST_USER и SSH_TEST_SERVER команда использует определенные в админке GitLab системные переменные.

Вместо rsync можно использовать scp или другие консольные утилиты для копирования данных между серверами в зависимости от ваших потребностей.

Так как в конфиге задано условие ручной сборки:

После слияния какой либо ветки в ветку master создаётся задание на сборку с ручным запуском

Сборка проекта GitLab

В статье приведены лишь базовые понятия и руководство к действию по сборке ваших проектов. Вариантов использования технологии и автоматизации ручного труда огромное множество.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *