Деплой 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

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

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

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