Як встановити 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 (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 reconfigureGitLab автоматично отримає та встановить ваш SSL сертифікат, а параметр auto_renew гарантує, що він буде поновлений перед закінченням терміну дії без будь-якого ручного втручання.
> Альтернатива: Якщо ви віддаєте перевагу самостійному управлінню SSL сертифікатами або вам потрібні сертифікати з підстановними знаками/кількома доменами, AlexHost пропонує широкий спектр SSL Certificates, які можна вручну налаштувати в параметрах 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, щоб створити облікові записи користувачів для членів в
