Как установить GITLAB на Ubuntu Xenial Server

Posted by

GitLab — сайт и система управления репозиториями кода для Git, из дополнительных возможностей: собственная вики и система отслеживания ошибок.

Шаги по разворачиванию своего собственного GitLAB сервиса на системе Ubuntu 16.04 Server:

Перед началом установки следует ознакомиться с мануалом:

https://docs.gitlab.com/omnibus/README.html#installation-and-configuration-using-omnibus-package

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 5933 0 5933 0 0 1905 0 --:--:-- 0:00:03 --:--:-- 1905

Detected operating system as Ubuntu/xenial.

Checking for curl...

Detected curl...

Checking for gpg...

Detected gpg...

Running apt-get update... done.

Installing apt-transport-https... done.

Installing /etc/apt/sources.list.d/gitlab_gitlab-ee.list...done.

Importing packagecloud gpg key... done.

Running apt-get update... done.

The repository is setup! You can now install packages.

Gitlab-ee весит более 500Mb: (на момент написания заметки: 11.6.4-ee.0 [528 MB])

gitlab-ee - GitLab Enterprise Edition (including NGINX, Postgres, Redis)

Thank you for installing GitLab!

GitLab was unable to detect a valid hostname for your instance.

Please configure a URL for your GitLab instance by setting external_url

configuration in /etc/gitlab/gitlab.rb file.

Then, you can start your GitLab instance by running the following command:

sudo gitlab-ctl reconfigure

Итак, GITLAB успешно установлен на системе Ubuntu Xenial Server amd64, как на него попасть? — а все просто, помните по заметке выше я указывал переменную EXTERNAL_URL, так вот с любой другой системы в пределах локальной сети Вам нужно запустить Ваш браузер и в строке адреса набрать или скопировать строку вида http://172.33.33.41, вместо 172.33.33.41 — Вам следует указать Ваш IP-адрес Вашей системы Ubuntu Xenail Server. Если сервис GITLAB поднимается в сети где есть DNS сервис, то на нем Вы можете создать запись типа A и при разворачивании GITLAB сервиса экспортировать не IP-адрес, а DNS-имя и через браузер обратиться к нему, либо еще вариант на Вашей системе в файл C:\Windows\System32\Drivers\etc\hosts прописать сопоставление ip=dns, а на Ubuntu системе если она основная в файле /etc/hosts. Не суть вообщем.

В моем случае браузер Mozilla Firefox на основной системе Ubuntu 18.04 Desktopa amd64 ноутбука Lenovo E555: http://172.33.33.41, но почему-то все не так как мне бы хотелось чтобы было хорошо, браузер вернул ошибку: «Попытка соединения не удалась». Проверяю, а не поторопился ли я, сервис поднят?

external_url 'http://gitlab.example.com'

## Вот она ошибка, в конфигурационном файле не мой экспортированный URL, изменяю на свой

#external_url 'http://gitlab.example.com'

external_url 'http://172.33.33.41'

После не забываем сохранить внесенные изменения и перезапускаю сервис GITLAB:

Но вот в чем беда, на консоль ничего не выдалось, а из этого делаю вывод что сервис не запустился, да и порт не прослушивается, смотрю логи nginx:

The program 'nginx' can be found in the following packages:

* nginx-core

* nginx-extras

* nginx-full

* nginx-light

Try: sudo apt install <selected package>

а его нет, помнится при установке скриптом проскакивала в выводе команда: (и судя по выводу на консоль она из плейбуков производит разворачивание сервиса, т. е. Он не установился Выше по заметке)

Starting Chef Client, version 13.6.4

resolving cookbooks for run list: ["gitlab-ee"]

Synchronizing Cookbooks:

- gitlab-ee (0.0.1)

- package (0.1.0)

- gitlab (0.0.1)

- consul (0.0.0)

- repmgr (0.1.0)

- runit (0.14.2)

- postgresql (0.1.0)

- redis (0.1.0)

- registry (0.1.0)

- mattermost (0.1.0)

- gitaly (0.1.0)

- nginx (0.1.0)

- letsencrypt (0.1.0)

- acme (3.1.0)

- crond (0.1.0)

- compat_resource (12.19.0)

Installing Cookbook Gems:

Compiling Cookbooks…

и т.д. Вот это мешанина всего и вся в единый механизм. Как я понял — gitlab разворачивается как сборка кем-то составленная и если что не так то разбираться придется со всем и сразу и почему не работает. Проще же уже самим развернуть сервис по управлению проектами с использованием git так хоть понятно куда копать если что не работает чем пользоваться комбайном. Ну это на любителя.

Running handlers:

Running handlers complete

Chef Client finished, 455/677 resources updated in 04 minutes 50 seconds

gitlab Reconfigured!

После того, как установка так сказать завершена, проверяю, что порт TCP/80 открыт и nginx отвечает за него и в окне браузера где была ошибка нажимаю клавишу F5 и:

tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 14484/config.ru

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 14528/nginx

tcp 0 0 127.0.0.1:8082 0.0.0.0:* LISTEN 14503/sidekiq 5.2.3

tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 14528/nginx

Задаю пароль, он задается при первом входе в систему, а логин по умолчанию это root:

New password: 712mbddr@

Confirm new password: 712mbddr@

Указываю пароль администратора для GITLAB

и нажимаю «Change your password», затем авторизуюсь:

Username or email: root

Password: 712mbddr@

и нажимаю Sign in

Пробую авторизоваться в GITLAB после установки

Опять я размечтался, пишет «Invalid Login or password.», тогде перехожу на Register и регистрируюсь:

  • Full name: ekzorchik
  • Username: ekzorchik
  • Email: support@ekzorchik.ru
  • Email confirmation: support@ekzorchik.ru
  • Password: 712mbddr@

и нажимаю Register. Вот он Web-интерфейс

После регистрации я в панели администрирования GITLAB - Установка завершена.

 

Полазил по различным настройкам, да интересный продукт, главное что на своем подконтрольном железе с различными настройками разграничения, но я в повседневности использую Mercurial + Web-интерфейс к нему — мне функционала пока хватает, т. к. я один. А GITLAB ориентирован на большую команду разработчиков. Как дорасту до этого то обязательно воспользуюсь текущей заметкой. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.