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

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

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

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_gitlab_1.png

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

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

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

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

Stat_gitlab_2.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

Хостинг
Хостинг
Хостинг
Создавайте неограниченное количество сайтов в изолированных контейнерах
С 2003 года
Надежность.
Нам доверяют десятки тысяч компаний и разработчиков
21 год
Предоставляем услуги профессионального хостинга
35 000
Клиентов доверяют нам размещение своих сайтов
99.99%
Подтвержденный uptime
наших серверов хостинга
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
ВК49865