Хостинг
VDS
Аренда серверов
Домены
Почта
SSL
Хранилище
Сайты
Обзоры
Регламенты
AI Studio
Kubernetes
Архив
Установка GitLab Runner. Настройка GitLab CI/CD на хостинге.

Установка gitlab runner на хостинг

В этой статье мы расскажем, как установить GitLab Runner с исполнителем shell на хостинг для автоматического обновления файлов сайта с помощью GitLab CI/CD.

1. Установка gitlab runner

1) Подключитесь к серверу хостинга по SSH (инструкция) и перейдите в каталог bin в вашем контейнере.

cd ~/bin

2) Скачайте бинарный файл GitLab Runner и назначьте права на исполнение:

curl -L --output gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
chmod +x gitlab-runner 

2. Настройка gitlab runner

3) Зарегистрируйте runner с помощью команды:

./gitlab-runner register  --url https://gitlab.com  --token XXXXXXXX --executor shell --non-interactive

Токен для регистрации можно получить в GitLab:

  • Перейдите в репозиторий

  • Откройте “Settings” → “CI/CD” → “Runners”

  • Нажмите “New project runner” и укажите тег для нового runner

Подробнее об этом можно прочитать в официальной документации.

4) Откройте файл config.toml комадной:

nano ~/.gitlab-runner/config.toml

Измените строку check_interval = 0 на check_interval = 120.

5) Настройте автозапуск gitlab-runner.

Для этого перейдите на страницу любого вашего сайта, в личном кабинете и откройте раздел “Фоновые процессы”

stat_gitlab1.png

Добавьте новый фоновый процесс и вставьте команду

cd ~/bin && ./gitlab-runner run

6) Настройте очистку временных файлов.

Для этого откройте раздел “Cron”, нажмите кнопку “Создать задачу” и выберите пункт “Задать вручную”

stat_gitlab2.png

Вставьте туда команду

0 * * * * rm -rf ~/bin/builds

и сохраните задание.

Настройка завершена. Теперь GitLab Runner готов к работе с CI/CD-задачами.

Пример настройки gitlab CI/CD для публичного репозитория

Для работы с gitlab-runner нужно написать CI/CD конфигурацию. Мы покажем содерижмое файла .gitlab-ci.yml, который можно использовать для настройки CI/CD в Gitlab. При изменении любого файла в ветке main будет запускаться скачивание файлов на хостинг и их изменение. Подробнее об этом можно прочитать в официальной документации.

stages:
  - deploy

deploy_job:
  stage: deploy
  before_script:
    - echo "Деплой на сервер..."

  script:
    - export DEPLOY_DIR="/home/cXXXXX/sitename.ru/app"
    - export REPO_URL="http://gitlab.com/my_name/my_repository"

    - cd "$DEPLOY_DIR"

    - git config --local --add safe.directory "$DEPLOY_DIR"

    - git remote set-url origin "$REPO_URL"
    - git pull origin main

  after_script:
    - echo "Деплой завершён!"

Вместо /home/cXXXXX/sitename.ru/app укажите папку, куда нужно загружать файлы из репозитория. Вместо https://gitlab.ru/my_name/my_repository укажите адрес Вашего репозитория.

Важно отметить! Данный пример будет работать, если в файлах сайта уже создана папка .git и она настроена на работу с удаленным репозиторием.

Если git не настроен для файлов сайта, тогда зайдите в папку с файлами сайта и выполните команды

git init
git remote add origin http://gitlab.com/my_name/my_repository
git pull origin main

Вместо https://gitlab.ru/my_name/my_repository укажите адрес Вашего репозитория.

Настройки авторизации для приватного репозитория gitlab

Для приватных репозиторев обновление файлов нужно скачивать не по http, а по ssh протоколу. Для этого выполните следующие настройки:

1) Подключитесь к серверу хостинга по SSH (инструкция) и сгенерируйте ssh-ключи командой:

ssh-keygen

Выведите публичный ssh-ключ командой

 cat ~/.ssh/id_rsa.pub

2) Загрузите сгенерированный публичный ssh-ключ в gitlab для Вашего пользователя по официальной документации

3) Вместо https://gitlab.ru/my_name/my_repository используйте строку git@itlab.ru:my_name/my_repository.git в файле .gitlab-ci.yml

Также при настройке git в папке сайта нужно использовать git@itlab.ru:my_name/my_repository.git вместо https://gitlab.ru/my_name/my_repository

Хостинг
Хостинг
Хостинг
Создавайте неограниченное количество сайтов в изолированных контейнерах
Заказать

Нам доверяют тысячи компаний и разработчиков

22 года
Предоставляем услуги профессионального хостинга
35 000+
Клиентов доверяют нам размещение своих сайтов
99.99%
Подтвержденный uptime наших серверов хостинга
Callibri
Крылья
Tele-Club
Linline
Премьер зал
УГМК-Здоровье
Магнум
Алатырь
Туристер
Callibri
Крылья
Tele-Club
Linline
Премьер зал
УГМК-Здоровье
Магнум
Алатырь
Туристер
ВК49865