- GitLab — Установка
- Установка GitLab на Windows:
- Установка GitLab на Ubuntu
- vgoma / gitlab-runner-virtualbox-windows-7.md
- Настройка CI/CD в GitLab для синхронизации проекта с веб-серверами
- Установка и регистрация Runner
- Установка
- Регистрация
- Создание CI/CD для проекта
- Настройка Rsyncd
- Настройка на веб-серверах
GitLab — Установка
Вы можете установить GitLab Runner в разных операционных системах, установив систему контроля версий Git и создав учетную запись пользователя на сайте GitLab.
Git — система контроля версий, используемая для —
- Обработка исходного кода истории проектов
- Отслеживание изменений, внесенных в файлы
- Быстрая и эффективная работа с небольшими и большими проектами.
- Сотрудничать с другими разработчиками в разных проектах
GitLab — это основанная на Git платформа, предоставляющая удаленный доступ к репозиториям Git и полезная для цикла разработки программного обеспечения, создавая частные и публичные репозитории для управления кодом.
GitLab поддерживает различные типы операционных систем, таких как Windows, Ubuntu, Debian, CentOS, open SUSE и Raspberry Pi 2. В этой главе мы обсудим, как установить GitLab в операционных системах Windows и Ubuntu.
Установка GitLab на Windows:
Шаг 1 — Сначала создайте папку с именем «GitLab-Runner» в вашей системе. Например, вы можете создать на диске C как C: \ GitLab-Runner.
Шаг 2 — Теперь скачайте бинарный файл для x86 или amd64 и скопируйте его в созданную вами папку. Переименуйте загруженный бинарный файл в gitlab-runner.exe .
Шаг 3 — Откройте командную строку и перейдите в созданную папку. Теперь введите приведенную ниже команду и нажмите ввод.
Шаг 4 — После выполнения вышеупомянутой команды она попросит ввести URL-адрес координатора gitlab-ci.
Шаг 5 — Введите токен gitlab-ci для бегуна.
Чтобы получить токен, войдите в свою учетную запись GitLab —
Чтобы получить токен, войдите в свою учетную запись GitLab —
Теперь перейдите к вашему проекту —
Теперь перейдите к вашему проекту —
Нажмите на опцию CI / CD на вкладке Настройки и разверните опцию Настройки бегунов .
Нажмите на опцию CI / CD на вкладке Настройки и разверните опцию Настройки бегунов .
В разделе « Настройки бегунов » вы получите токен, как показано на рисунке ниже —
В разделе « Настройки бегунов » вы получите токен, как показано на рисунке ниже —
Шаг 6 — Введите описание gitlab-ci для бегуна.
Шаг 7 — Он попросит ввести теги gitlab-ci для бегуна.
Вы можете изменить эти теги в пользовательском интерфейсе GitLab позже.
Шаг 8 — Вы можете привязать Runner к текущему проекту, установив для него значение true.
После выполнения описанных выше шагов вы получите сообщение об успешной регистрации: «Регистрация участника … выполнена успешно».
Шаг 9 — Теперь введите Runner executor для построения проекта.
Мы использовали селектор как «докер», который создает среду сборки и легко управляет зависимостями для разработки проекта.
Шаг 10 — Затем он попросит установить изображение по умолчанию для селектора докеров.
Шаг 11 — После выполнения вышеуказанных шагов на экране появится сообщение «Бегун успешно зарегистрирован». На изображении ниже будет описан рабочий процесс вышеуказанных команд —
Шаг 12 — Теперь перейдите к своему проекту, нажмите на опцию CI / CD в разделе « Настройки », и вы увидите активированных бегунов для проекта.
Вы можете увидеть конфигурацию GitLab Runner в файле config.toml в папке GitLab-Runner, как показано ниже —
Установка GitLab на Ubuntu
GitLab может быть установлен в системе Ubuntu с помощью пакета Omnibus , который предоставляет различные сервисы для запуска GitLab. Пакет Omnibus предоставляет необходимые компоненты GitLab, устанавливает конфигурации и метаданные проекта, которые можно использовать в системе пользователя.
Следующие шаги описывают установку GitLab в Ubuntu —
Шаг 1 — Сначала войдите на ваш сервер GitLab с помощью SSH (Secure Shell).
Шаг 2 — Затем загрузите пакет Omnibus —
Шаг 3 — Установите постфикс —
Postfix — это агент передачи почты с открытым исходным кодом, используемый для доставки уведомлений по электронной почте.
Шаг 4 — При установке Postfix, он спросит тип установки; затем выберите вариант Интернет-сайта . Далее он покажет конфигурацию Postfix вместе с системным почтовым именем, как показано на рисунке —
Шаг 5 — Установите dpkg (менеджер пакетов для системы Debian) для управления установленными пакетами —
Шаг 6 — Чтобы изменения вступили в силу, вам нужно перенастроить GitLab с помощью следующей команды:
Шаг 7 — Проверьте состояние сервисов GitLab с помощью команды ниже —
Если вы хотите установить GitLab из исходного кода, установите некоторые зависимости на сервере и вам необходимо настроить базу данных с помощью PostgreSQL. Это описано в главе Настройка среды . Вы можете установить координатор для создания веб-интерфейса и управления экземплярами сборки. Для получения дополнительной информации вы можете проверить главу Установка координатора .
vgoma / gitlab-runner-virtualbox-windows-7.md
Gitlab Virtualbox Windows 7 runner
В результате выполнения шагов у вас будет готовый runner на виртуальной машине с Windows 7 с Cygwin, к которой можно будет подключиться по ssh.
Качаем установочный файл cygwin например в C:\dev\cygwin .
Пакеты для Cygwin устанавливаются именно из него
Запускаем файл с правами администратора:
Указываем, где будет корень системы Cygwin:
Указываем, откуда будут устанавливаться пакеты:
Добавляем в систему пакеты openssh , openssl :
Добавляем в систему git :
Устанавливаем SSH демон:
Запускаем настройку ssh:
Отвечаем на вопросы:
Проверяем, что служба успешно установлена:
Несмотря на то, что в Windows 7 создается учетка cyg_server необходимо включить учетную запись sshd , тк вход по ssh будет осуществляться именно из-под нее:
Включить в группу администраторов:
Задаем пароль пользователю sshd :
Выключаем виртуальную машину, и маппим порты, чтобы подключиться по ssh:
При выполнении «работы» gitlab-runner маппит порты таким же образом
Запускаем виртуальную машину из-под любого пользователя и подключаемся к ней по ssh:
Так же на этом этапе необходимо включить автологин в учетную запись sshd (чтобы были доступны все службы этого пользователя) и произвести все дополнительные настройки для учетной записи sshd (установить доверенные SSL сертификаты или сертификаты ЭП пользователя).
Делаем snapshot.
Gitlab-runner по умолчанию для каждой «работы» клонирует виртуальную машину с последнего snapshot’а (а не с текущего состояния машины). При этом если в конце истории snapshot’ов несколько одноименных, то gitlab возьмет именно первый из них.
Регистрируем runner в Gitlab
Устанавливаем ПО для запуска и регистрации runner’ов.
Подправим конфиг путь к которому подскажет gitlab-runner list , указав данные для ssh и название виртуалки:
Пример «работы» из .gitlab-ci.yml :
Теперь Gitlab будет выполнять работы на runner’ах с указанными тэгами.
Настройка CI/CD в GitLab для синхронизации проекта с веб-серверами
Runner в GitLab позволяют автоматизировать рутинные задачи при обновлении проектов в репозитории. В нашем примере мы рассмотрим ситуацию, когда у нас используется сервер GitLab для хранения проекта и 5 веб-серверов, куда должны попадать изменения после выполнения git push. Мы настроим наш CI/CD на синхронизацию файлов с помощью rsyncd. Предполагается, что у нас уже установлен GitLab на Linux, в противном случае, воспользуйтесь инструкцией для Ubuntu или CentOS.
Нам потребуется выполнить:
Установка и регистрация Runner
Runner — это отдельное приложение, которое запускается для выполнения заданий CI/CD. Его можно установить любой компьютер под управлением любой популярной операционной системы (Linux, Windows, BSD, Mac OS и так далее). Также доступны различные варианты установки — из репозитория, скачивание бинарника или запуск как приложения в Docker или кластере Kubernetes. Мы выполним установку из репозитория Linux на тот же сервер, где работает наш GitLab.
Установка
По умолчанию, Runner не устанавливается вместе с GitLab. Для его установки необходимо сначала настроить репозиторий — наши действия зависят от используемой системы.
а) система на базе deb-пакетов (Debian / Ubuntu):
curl -L «https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh» | sudo bash
б) система на базе RPM-пакетов (Red Hat / CentOS):
curl -L «https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh» | sudo bash
После настройки репозитория, выполняем установку. Команда также зависит от типа операционной системы.
а) для Debian / Ubuntu:
apt-get install gitlab-runner
б) для Red Hat / CentOS:
yum install gitlab-runner
После установки gitlab-runner разрешаем автозапуск сервиса и стартуем его:
systemctl enable gitlab-runner —now
Регистрация
Для корректной работы Runner его нужно связать с нашим проектом в GitLab. Для этого сначала заходим на портал последнего — переходим на страницу проекта — в меню слева выбираем Settings — CI / CD:
Находим раздел Runners:
Справа от названия кликаем по Expand:
Находим параметры для регистрации нового раннера:
. и оставляем страницу открытой — она понадобиться на следующем шаге.
В командной строке нашего сервера GitLab вводим:
* установить и запустить Runner можно не только на локальном сервере GitLab, но мы рассмотрим только данный способ.
Система в интерактивном режиме запросит данные для регистрации — вводим их:
Enter the GitLab instance URL (for example, https://gitlab.com/):
https://gitlab.dmosk.ru/
Enter the registration token:
zX_Kvkxk7ywrgwYHsod5
Enter a description for the runner:
[git-server.dmoks.ru]: DMOSK Metrics API
Enter tags for the runner (comma-separated):
dmosk, metrics, api
Registering runner. succeeded runner=zX_Kvkxk
Enter an executor: parallels, virtualbox, docker+machine, docker-ssh+machine, kubernetes, custom, docker, docker-ssh, shell, ssh:
shel
- https://gitlab.dmosk.ru/ — адрес нашего сервера GitLab. Его можно увидеть на странице с параметрами, которую мы оставили открытой на предыдущем шаге. В моем случае, на данной странице ссылка была типа http, однако, при регистрации Runner мы ее должны поменять на https (если наш сервер использует его).
- zX_Kvkxk7ywrgwYHsod5 — токен для регистрации раннера. Его смотрим на странице с параметрами, которые мы открывали выше.
- DMOSK Metrics API — произвольное описание для нашего раннера.
- dmosk, metrics, api — теги. Рекомендуется максимально точно описывать раннер тегами.
- shell — выбираем исполнителя из предложенных вариантов. В нашем случае это просто командный интерпретатор.
В конце мы должны увидеть:
Runner registered successfully. Feel free to start it, but if it’s running already the config should be automatically reloaded!
* если мы получим ошибку «status couldn execute post against certificate signed by unknown authority», переходим к решению ниже.
Обновим страницу с параметрами для регистрации раннера — ниже мы должны увидеть, что у нас появился один новый элемент. Кликаем по изображению редактирования справа от токена:
Выставляем следующие галочки для настройки Runner:
- Paused Runners don’t accept new jobs — если наш обработчик заданий приостановлен, он не принимает новые задания.
- This runner will only run on pipelines triggered on protected branches — Runner должен запускаться только на защищенных ветках.
- Indicates whether this runner can pick jobs without tags — раннер может запускать задания без тегов.
- When a runner is locked, it cannot be assigned to other projects — если обработчик заблокирован, его нельзя назначать для других проектов.
И так, обработчик зарегистрирован и настроен. Переходим к созданию CI/CD.
Создание CI/CD для проекта
На первоначальном этапе, мы создадим простой сценарий, который просто будет выводить путь до каталога на сервере, в котором находится проект.
Переходим в GitLab на страницу проекта и кликаем по Set up CI/CD:
* данной кнопки может и не быть.
. или можно просто в корне проекта создать файл:
Задаем содержимое нашего сценария:
test:
stage: test
script: echo $CI_PROJECT_DIR/
* Из расширения файла понятно, что формат текста должен быть yml, а значит, отступы имеют значения. В данном примере мы создаем pipeline с одним единственным этапом, которое называется test. По данному заданию будет запускаться скрипт вывода значения переменной $CI_PROJECT_DIR — путь, по которому клонируется проект и где выполняется задание (если установлен $builds_dir, эта переменная устанавливается относительно данного значения. Список возможных переменных можно посмотреть на официальном сайте в разделе документации GitLab CI/CD environment variables.
После сохранения файла ждем несколько секунд и перезапускаем страницу — мы должны увидеть успешный результат выполнения сценария CI/CD:
Кликнем по значку зеленой галочки и в открывшейся странице кликаем по нашей единственной стадии:
Мы должны увидеть ход процесса выполнения задания и результат его работы:
На этой же странице справа можно вручную запустить задание еще раз:
CI/CD создан. Теперь необходимо подготовить систему к синхронизации данных.
Настройка Rsyncd
Наша синхронизация будет выполняться с помощью Rsyncd. Это удобный инструмент, с помощью которого можно поддерживать актуальное состояние двух и более каталогов. Также у нас не возникнет проблем с правами — rsync после копирования будет задавать файлам нужного владельца и нам не нужно будет выдавать права root для runner с помощью файла sudoerst. Подробнее об установке и настройке Rsyncd.
Настройки нужно выполнить как на веб-серверах, так и сервере с GitLab.
Настройка на веб-серверах
Данные действия нужно выполнить на каждом веб-сервере. Мы должны установить и настроить в качестве сервиса rsyncd. Сначала установим его. В зависимости от типа Linux, наши действия будут различаться.