Print this page

Настройка GitLab-CE on-premise в Ubuntu 24.04

11 September 2013
Rate this item
(0 votes)

0. Минимальные требования к оборудованию.

Допустим у тебя/твоего руководства есть желание запустить свой гитлаб, но нет желания потратить на это деняк. Прям самые минимальные, чтобы запустить даже на драндулете из желудей и палок потребуется:

ОЗУ для инсталяшки написано на офсайте якобы 2,5 ГБ. Но лично у меня есть сомнения. 4ГБ, но будешь периодически выхватывать внутреннюю ошибку 500, а за обратным прокси еще и 504. Попробуй 5ГБ. Адекватная минималка 8ГБ, рекомендуется 16ГБ

HDD >7200rpm 15Gb

CPU 1 vCPU, адекватно - 2-8vCPU

1. Установите и настройте необходимые зависимости.

sudo su
apt -y update && apt -y upgrade && apt -y install git && apt -y autoremove

2. Добавьте репозиторий пакетов GitLab и установите пакет.

curl --silent https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash && apt -y install --download-only gitlab-ce
sudo EXTERNAL_URL="http://<LOCAL IP ADDRESS>" dpkg -i /var/cache/apt/archives/gitlab-ce*.deb && cat /etc/gitlab/initial_root_password

Далее установите пакет GitLab. Убедитесь, что вы правильно настроили DNS и измените https://gitlab.example.com на URL, по которому вы хотите получить доступ к своему экземпляру GitLab. Установка автоматически настроит и запустит GitLab по этому URL. Для https:// URL-адресов GitLab автоматически запросит сертификат с Let's Encrypt, который требует входящий HTTP-доступ и действительное имя хоста . Вы также можете использовать свой собственный сертификат или просто использовать http:// (без s). Если вы хотите указать пользовательский пароль для начального пользователя-администратора (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://<LOCAL-IP-ADDRESS>/kowalski/first.git
git add .
git commit -m "first"
git push --set-upstream origin main

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

git config --global http.sslverify false

Вариант намба ТУ. Клонирование репы с Гитлаба на локальный драндулет. Заходиш в папку кароч.

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 clone http://<LOCAL-IP-ADDRESS>/kowalski/first.git
cd first
git switch --create main

В принципе вся эта петрушка написана в подсказке когда ты создал проект. Разберешься сам с третьим вариантом!)

4. SSH-keys.

По мере использования тебе надоест постоянно вбивать логин пароль. Поэтому добавим SSH-ключи. Токены еще называют. Идешь на тачку "клиента" и в консоли вбиваешь "ssh-keygen", попросит пароль - оставляешь пустым. В ~/.ssh создается пара ключей, у меня открытый ключ создался с именем "id_ed25519.pub", у тебя может отличаться, смотрим что в нем внутри. А можно сделать все это сразу через Ansible.

ssh-keygen
cd ~/.ssh
cat id_ed25519.pub
ssh-ed25519 <YOUR PUB-KEY HASH> <USERNAME>@<YOUR.HOST.NAME>

Скопировали и пошли в Dashboard создавать токен

Создал? Ты умничка. Теперь можешь проделывать все операции на "клиенте" без постоянной долбежки логин пароля. А если понадобится добавить еще пользователя/лей с ключом, то:

Аналогично можно добавлять ключи развертывания в общем Dashboard "Admin Area/Deploy Keys" и позже "Enable" их в необходимых репозиториях.

А на этих ваших Шиндовс делается все аналогично, но только через тулзу Git Bash, где генерится ключ при помощи команды ssh-keygen.exe