Заощадьте 15% на всіх хостингових послугах

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код: Skills Почати
Рубрики
Linux Адміністрація

Як встановити GitLab на Ubuntu: Повний посібник крок за кроком

GitLab — одна з найпотужніших доступних сьогодні платформ DevOps з відкритим кодом, яка пропонує комплексний набір інструментів, включаючи контроль версій на основі Git, конвеєри безперервної інтеграції/безперервного розгортання (CI/CD), відстеження проблем та функції командної співпраці — все в одному місці. Незалежно від того, керуєте ви невеликою командою розробників або запускаєте проекти програмного забезпечення масштабу підприємства, самостійний хостинг GitLab на Ubuntu дає вам повний контроль над вашими даними, робочими процесами та інфраструктурою.

Цей посібник проведе вас через кожен крок встановлення та налаштування GitLab Community Edition (CE) на сервері Ubuntu, від початкової підготовки системи до включення HTTPS та управління сервісами.

Передумови

Перед тим, як розпочати, переконайтеся, що у вас є наступне:

  • Сервер, що працює на Ubuntu 20.04 або 22.04 LTS (рекомендується свіжа установка)
  • Мінімум 4 GB RAM та 2 CPU cores (GitLab рекомендує щонайменше 4 ядра для виробничого використання)
  • Root або sudo доступ до сервера
  • Зареєстроване доменне ім’я, яке вказує на IP-адресу вашого сервера (опціонально, але настійно рекомендується для HTTPS)
  • Порти 80 та 443 відкриті у вашому брандмауері

> Порада: Для найкращої продуктивності GitLab розглядайте розгортання на плані VPS Hosting з достатніми ресурсами RAM та CPU. VPS плани AlexHost оптимізовані для Linux робочих навантажень і поставляються з повним root доступом, що робить їх ідеальним середовищем для самостійно розміщених платформ DevOps, як-от GitLab.

Крок 1: Оновлення системних пакетів

Перед встановленням будь-якого програмного забезпечення критично важливо переконатися, що індекс пакетів вашої системи та встановлені пакети повністю актуальні. Це запобігає конфліктам залежностей і гарантує, що ви працюєте з найновішими патчами безпеки.

sudo apt update && sudo apt upgrade -y

Дочекайтеся завершення процесу оновлення перед переходом до наступного кроку.

Крок 2: Встановлення необхідних залежностей

GitLab вимагає кількох допоміжних пакетів для правильної роботи, включаючи інструменти для безпечного зв’язку, управління часовими поясами та скриптування. Встановіть їх за допомогою наступної команди:

sudo apt install -y curl openssh-server ca-certificates tzdata perl

Ось що робить кожен пакет:

ПакетПризначення
curlЗавантажує скрипти та файли з веб-сайту
openssh-serverДозволяє SSH доступ до вашого сервера
ca-certificatesПеревіряє сертифікати SSL/TLS
tzdataНадає дані про часові пояси
perlНеобхідний для внутрішніх скриптів GitLab

Крок 3: Додайте офіційний репозиторій GitLab

GitLab підтримує офіційний репозиторій пакетів, що спрощує встановлення та майбутні оновлення. Використовуйте наступну команду для завантаження та виконання скрипту налаштування репозиторію:

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

Цей скрипт автоматично:

  • Визначає вашу версію Ubuntu
  • Додає репозиторій пакетів GitLab до ваших джерел APT
  • Імпортує ключ підписування GPG репозиторію для перевірки пакетів

Після завершення скрипту ваша система готова до встановлення GitLab безпосередньо з офіційного джерела.

Крок 4: Встановлення GitLab Community Edition

Тепер встановіть GitLab CE за допомогою менеджера пакетів apt. Ви повинні встановити змінну середовища EXTERNAL_URL на URL-адресу або IP-адресу, через яку користувачі матимуть доступ до вашого екземпляра GitLab.

Якщо у вас є доменне ім’я:

sudo EXTERNAL_URL="https://gitlab.yourdomain.com" apt install gitlab-ce

Якщо ви використовуєте IP-адресу (наприклад, для локального або приватного сервера):

sudo EXTERNAL_URL="http://YOUR_SERVER_IP" apt install gitlab-ce

Замініть gitlab.yourdomain.com або YOUR_SERVER_IP на вашу фактичну доменну назву або IP-адресу.

> Примітка: Процес встановлення може тривати кілька хвилин, оскільки він завантажує та налаштовує всі компоненти GitLab, включаючи PostgreSQL, Redis, NGINX та Sidekiq.

Під час встановлення GitLab буде:

  • Встановлювати всі вбудовані сервіси (базу даних, кеш, веб-сервер тощо)
  • Налаштовувати себе на основі EXTERNAL_URL, який ви надали
  • Генерувати файли початкової конфігурації в /etc/gitlab/

Крок 5: Запустіть переконфігурацію GitLab

Після встановлення запустіть команду переконфігурації, щоб завершити налаштування, ініціалізувати базу даних і запустити всі сервіси GitLab:

sudo gitlab-ctl reconfigure

Ця команда читає конфігурацію з /etc/gitlab/gitlab.rb і застосовує всі параметри. Вона також генерує SSL-сертифікати (якщо налаштовано Let’s Encrypt), налаштовує схему бази даних і запускає всі необхідні фонові сервіси.

Ви повинні побачити довгий вивід, який закінчується повідомленням, подібним до:

gitlab Reconfigured!

Крок 6: Доступ до GitLab у веб-браузері

Після завершення переконфігурації відкрийте веб-браузер і перейдіть на URL, який ви вказали під час встановлення:

https://gitlab.yourdomain.com

або

http://YOUR_SERVER_IP

Перший вхід

При першому відвідуванні GitLab запропонує вам встановити пароль адміністратора. Після його встановлення увійдіть, використовуючи такі облікові дані:

  • Ім’я користувача: root
  • Пароль: Пароль, який ви щойно створили

> Поради щодо безпеки: Змініть облікові дані облікового запису root за замовчуванням одразу після першого входу. Створіть особистий обліковий запис адміністратора та обмежте використання облікового запису root лише для надзвичайних ситуацій.

Крок 7: Налаштування сповіщень електронної пошти GitLab (опціонально)

Надсилання сповіщень електронної пошти є важливим для виробничого екземпляра GitLab — це дозволяє функції, такі як перевірка облікового запису, оновлення запитів на злиття, сповіщення CI/CD та скидання пароля. Налаштуйте параметри SMTP у основному файлі конфігурації GitLab:

sudo nano /etc/gitlab/gitlab.rb

Додайте або змініть наступний блок конфігурації SMTP:

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.yourmailprovider.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your_email@yourdomain.com"
gitlab_rails['smtp_password'] = "your_email_password"
gitlab_rails['smtp_domain'] = "yourdomain.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true

Збережіть файл і застосуйте зміни:

sudo gitlab-ctl reconfigure

> Шукаєте надійну інфраструктуру електронної пошти? AlexHost пропонує професійні послуги Email Hosting, які безперебійно інтегруються з самостійно розміщеними додатками, такими як GitLab, забезпечуючи стабільне SMTP-ретрансляцію з високою доставляємістю.

Крок 8: Увімкніть HTTPS з Let’s Encrypt (Рекомендується)

Запуск GitLab через HTTPS настійно рекомендується для будь-якого виробничого або командного середовища. GitLab має вбудовану підтримку Let’s Encrypt, безкоштовного та автоматизованого центру сертифікації SSL.

> Важливо: Let’s Encrypt вимагає, щоб ваше доменне ім’я було загальнодоступним і щоб порт 80 був відкритий на вашому сервері. Це не працюватиме з простими IP-адресами.

Відкрийте файл конфігурації GitLab:

sudo nano /etc/gitlab/gitlab.rb

Додайте наступну конфігурацію:

letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['your_admin_email@yourdomain.com']
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = 12
letsencrypt['auto_renew_minute'] = 30
letsencrypt['auto_renew_day_of_month'] = "*/7"

Збережіть файл і перенастройте GitLab:

sudo gitlab-ctl reconfigure

GitLab автоматично отримає та встановить ваш SSL-сертифікат, а параметр auto_renew гарантує його поновлення перед закінченням терміну дії без будь-якого ручного втручання.

> Альтернатива: Якщо ви віддаєте перевагу самостійному управлінню SSL-сертифікатами або вам потрібні сертифікати з підстановними знаками/мультидоменні, AlexHost пропонує широкий спектр SSL-сертифікатів, які можна вручну налаштувати в параметрах NGINX GitLab.

Крок 9: Управління сервісами GitLab

GitLab включає власний інструмент управління сервісами під назвою gitlab-ctl. Використовуйте наступні команди для контролю сервісів GitLab:

Запуск GitLab

sudo gitlab-ctl start

Зупинка GitLab

sudo gitlab-ctl stop

Перезапуск GitLab

sudo gitlab-ctl restart

Перевірка статусу сервісу

sudo gitlab-ctl status

Перегляд журналів у реальному часі

sudo gitlab-ctl tail

Перегляд журналів для конкретного сервісу (наприклад, NGINX)

sudo gitlab-ctl tail nginx

Ці команди неоціненні для усунення неполадок та планового обслуговування. Команда status відобразить стан всіх підсервісів GitLab, включаючи PostgreSQL, Redis, Sidekiq, Puma (веб-сервер) та NGINX.

Крок 10: Початкова конфігурація GitLab для вашої організації

З встановленим і запущеним GitLab настав час налаштувати його відповідно до потреб вашої команди. Ось ключові області для налаштування через веб-інтерфейс GitLab:

Управління користувачами

Перейдіть до Admin Area → Users, щоб створити облікові записи користувачів для членів вашої команди. Ви можете налаштувати методи аутентифікації, включаючи LDAP, OAuth та SAML для корпоративного єдиного входу.

Групи та проекти

  • Групи дозволяють організувати пов’язані проекти та керувати дозволами в масштабі
  • Проекти — це окремі репозиторії з власними трекерами проблем, вікі та конвеєрами CI/CD

Конвеєри CI/CD

Вбудований CI/CD GitLab — одна з його найпотужніших функцій. Створіть файл .gitlab-ci.yml у корені вашого репозиторію, щоб визначити автоматизовані конвеєри збірки, тестування та розгортання.

Параметри репозиторію

Налаштуйте правила захисту гілок, затвердження запитів на злиття та робочі процеси перевірки коду в розділі Settings → Repository кожного проекту.

Конфігурація резервного копіювання

Налаштуйте автоматичне резервне копіювання, налаштувавши наступне в /etc/gitlab/gitlab.rb:

gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800  # Keep backups for 7 days

Запустіть ручне резервне копіювання в будь-який час за допомогою:

sudo gitlab-backup create

Конфігурація брандмауера

Якщо у вас увімкнено UFW (Uncomplicated Firewall) на сервері Ubuntu, переконайтеся, що ви дозволяєте трафік HTTP та HTTPS:

sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status

Усунення поширених проблем

ПроблемаРішення
GitLab недоступний після встановленняПеревірте правила брандмауера; перевірте EXTERNAL_URL в /etc/gitlab/gitlab.rb
Помилка 502 Bad GatewayЗапустіть sudo gitlab-ctl restart; перевірте журнали за допомогою sudo gitlab-ctl tail
Помилка сертифіката Let’s EncryptПереконайтеся, що порт 80 відкритий і DNS домену правильно налаштований
Високе використання пам’ятіЗменшіть робітників Puma в gitlab.rb: puma['worker_processes'] = 2
Сповіщення електронної пошти не надсилаютьсяПеревірте облікові дані SMTP і запустіть sudo gitlab-rails console для тестування

Висновок

Встановлення GitLab на Ubuntu — це простий процес, який надає вам корпоративну платформу DevOps під повним контролем. Дотримуючись цього посібника, ви встановили повністю функціональний екземпляр GitLab з шифруванням HTTPS, сповіщеннями електронної пошти та належним управлінням сервісами — готовим до реальних робочих процесів розробки.

Самостійне розміщення GitLab дає вашій команді свободу налаштовувати робочі процеси, зберігати суверенітет даних та інтегруватися з вашою існуючою інфраструктурою без повторюваних витрат на підписку SaaS. Ключ до безперебійної роботи GitLab — це початок з надійного, високопродуктивного сервера.

Для команд, яким потрібна надійна основа для GitLab, Dedicated Servers AlexHost пропонують максимальну продуктивність та ізоляцію, тоді як плани VPS Hosting забезпечують економічну та масштабовану альтернативу для менших команд та зростаючих проектів. Обидва варіанти поставляються з повним доступом root, сховищем SSD та цілодобовою технічною підтримкою — усім необхідним для впевненого запуску GitLab.