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

В статье пойдёт речь о том как из 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

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

2 Comments

  1. У меня вопрос, в адресе ssh $SSH_TEST_USER@$SSH_TEST_SERVER:www/coderun.b2
    после двоеточия в конце идет вот это www/coderun.b2 , на что нужно это заменить? или можно убрать? и для чего это?
    статья очень полезная, для начинающего, но вот вопросы всетаки есть)

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

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

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