GitLab on-premise в Ubuntu 24.04

14 February 2025

0. Минимальные требования к CI/CD.

Допустим, у тебя есть желание внедрить CI/CD, но на старый железный хлам тратить сотни часов не хочется. Минималка, чтобы хоть что-то запустить:

  • ОЗУ: минимум 4ГБ (лучше 8ГБ, рекомендуем 16ГБ для полноценной работы)
  • CPU: 2 vCPU минимум (адекватно 4-8 vCPU)
  • Диск: >15GB SSD/HDD 7200rpm

1. Подготовка зависимостей.

sudo su
apt -y update && apt -y upgrade && apt -y install git curl unzip openjdk-17-jdk && apt -y autoremove

Эти пакеты пригодятся для GitLab Runner или других CI/CD инструментов.

2. Установка CI/CD сервера.

Берем пример на GitLab CI/CD.

curl --silent https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash
apt -y install gitlab-ce
sudo EXTERNAL_URL="http://" dpkg -i /var/cache/apt/archives/gitlab-ce*.deb

Далее установите пакет GitLab. Убедитесь, что вы правильно настроили DNS и измените https://gitlab.example.com на URL, по которому вы хотите получить доступ к своему экземпляру GitLab. Установка автоматически настроит и запустит GitLab по этому URL. Для https:// URL-адресов GitLab автоматически запросит сертификат с Let's Encrypt, который требует входящий HTTP-доступ и действительное имя хоста . Вы также можете использовать свой собственный сертификат или просто использовать http:// (без s). Если вы хотите указать пользовательский пароль для начального пользователя-администратора (root), проверьте документацию. После установки GitLab создаст случайный root-пароль или используй свой.

Не забудь завести нового админа с которого будешь работать. В Admin Area -> Overview -> Users, Access Level "Administrator" -> Create User, сразу же поменять пароль "Edit" и отключить возможность регистрации кого попало. Наверху увидишь "Check your sign-up restrictions" -> Deactivate, снять галку с "Sign-up enabled". И для учетки "Administrator" тоже смени пароль.

3. Создаем проект/репозиторий.

Я думаю как создать проект ты разберешься самостоятельно, если дошел до этого пункта. А вот дальше уже "Kowalski, варианты". 

Вариант намба УАН. Допустим, у тебя есть какие то наработки и ты хочешь залить их в собственную репу. Для этого создай ПУСТОЙ проект БЕЗ инициализации    (сними галку с "Initialize repository with a README "). На твоей тачке с говнокодом уже должен быть установлен Git. Идешь в папку со своим проектом, обновляешь гит до последней версии, если надо и забиваешь глобальные настройки аля "А кто это сделал?", инициализируем локальный репозиторий, добавляем связь с репозиторием на GitLab, добавляем файлы которые хотим отправить, делаем коммит и пушим. Спросит логин/пароль от "удаленного" репозитория и все готово!

На локальной машине:

git config --global user.name "USERNAME"
git config --global user.email "This email address is being protected from spambots. You need JavaScript enabled to view it."
git init --initial-branch=main
git remote add origin http:///myproject.git
git add .
git commit -m "first commit"
git push --set-upstream origin main

Если ты работаешь по http://LOCAL-IP-address, и ВДРУГ у тебя ругается на SSL, то вбей что ниже, а в дальнейшем покажу как сделать кошерно.:

git config --global http.sslverify false

4. SSH-ключи.

Чтобы не вбивать логин/пароль каждый раз:

ssh-keygen
cd ~/.ssh
cat id_ed25519.pub
# Скопировать открытый ключ в Dashboard -> User Settings -> SSH Keys

Теперь пуш/пулл на GitLab проходит без постоянного ввода пароля. Для новых пользователей делай то же самое.

5. Настройка Pipeline.

Создай .gitlab-ci.yml или Jenkinsfile в корне проекта. Пример для GitLab:

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Building..."

test_job:
  stage: test
  script:
    - echo "Testing..."

deploy_job:
  stage: deploy
  script:
    - echo "Deploying..."

Каждый пуш будет запускать пайплайн автоматически.

6. Проверка работы.

Пушим изменения в ветку main и смотрим лог пайплайна:

git add .
git commit -m "Test CI/CD"
git push origin main

Если всё настроено, пайплайн отработает автоматически и выдаст статус выполнения.

Pipeline status

7. Советы и ловушки.

  • Используй отдельный Runner для тестовых задач, чтобы не тормозить основной сервер.
  • Регулярно чисти старые сборки и артефакты.
  • Следи за зависимостями — старые версии пакетов могут ломать пайплайн.
  • Добавь уведомления в Slack/Telegram для важного деплоя.

Leave a comment

Popular Posts

Advertisement

Headlines