# GitLab и GitLab CI


## GitLab ставить gitlab-ee или можно gitlab-ce?

Нужно именно `gitlab-ce`.


## Какой пароль у root по умолчанию у Gitlab'а?

GitLab поменял алгоритм создания пароля для пользователя root.

Теперь первоначальный пароль записывается в файл `/etc/gitlab/initial_root_password`.

В консоли выполните команду `sudo cat /etc/gitlab/initial_root_password` и получите пароль.


## Показалось, гитлаб и гитхаб примерно об одном? Т.е. на курсе рассмотрим два способа организации версионирования?

В рамках данного курса изучается GitLab с акнцентом на его компонент - GitLab CI - сервер непрерывной интеграции, как альтернатива Jenkins. А так да, GitLab рожден как клон GitHub и таковым является.

Но GitHub вы не можете установить себе на сервер (точнее, можете, но Enterprise версия стоит крайне дорого и рассчитана только на очень крупные компании), а GitLab можете — у него есть открытая и бесплатная версия Gitlab Community Edition. Ее мы в рамках курса и используем.

GitHub в данном курсе не рассматривается как инструмент, только, скажем так, как сайт-источник исходников нужных нам библиотек.

Но общие принципы работы одинаковые, да, так что полученные знания сможете применить.


## Как сбросить пароль учетной записи в gitlab?

В консоли выполните команды:

```
sudo su
gitlab-rails console
user = User.where(id: 1).first
user.password = 'ВАШ-НОВЫЙ-ПАРОЛЬ'
user.password_confirmation = 'ВАШ-НОВЫЙ-ПАРОЛЬ'
user.save!
```

Подробнее и другие способы см. в: https://docs.gitlab.com/ee/security/reset_user_password.html


## Урок 1.2.3, подключение удаленного репозитория GitLab, у меня путь странный до него - http://gitlab.example.com/root/mytestrepo.git, он не работает. Что делать?

Чтобы ссылки корректные были нужно зайти в консоль с правами рута и открыть на редактирование файл `/etc/gitlab/gitlab.rb`.

В файле в строке

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

нужно заменить адрес `gitlab.example.com` на адрес хоста, где у вас развернут гитлаб.

После этого нужно обязательно выполнить команду `gitlab-ctl reconfigure`.


## В инструкции написано что установка гитлаба 10-13 мин, а настройка 3 мин, а у меня наоборот и настройка висит уже очень долго. Ждать завершения?

Все зависит от ресурсов, Gitlab достаточно тяжёлый

reconfigure достаточно долгая процедура, тк она выполняет установку зависимостей, по сути там провизионинг осуществляется (устанавливается, настраивается и запускается куча сервисов от базы данных до nginx'а)

## В инструкции написано  ставить десктоп версию Убунты. В итоге ставить десктоп без установки графической оболочки или серверную версию?

Можете попробовать установить так https://docs.google.com/document/d/1mI0awwvflAdDB7Vr4SASCzGwSSQ1qhwl0g_ND5pKAr4/edit?usp=sharing
Это инструкция более свежая, с учетом изменений версии 14 GitLab

Для учебных целей и для тех, кто с Убунтой пока "не на ты" и при этом есть избыток ресурсов, которых не жалко - лучше поднимать полную десктопную версию. Если есть проблемы с ресурсами или планируется запуск большой нагрузки - то лучше ставить "экономный вариант" в виде серверной версии убунты.


## После перезапуска вирт машины, не работает gitlab. Он должен стартовать автоматически ? Какой командой проверить что гитлаб запущен ? и какой командой  запустить если не запущен?

GitLab достаточно тяжел и запускается долго, особенно в виртуалке. Нужно подождать до 3х минут до полного запуска всех компонентов гитлаба


## Как увеличить разрешение в виртуалке не переходя в полноэкраный режим?

При использовании VMWare нужно в гостевой ОС установить пакет VMWare Tools, при использовании Virtual Box - Guest additions. Это специальные драйверы/утилиты внутри гостевой ОС, которые дадут вирт. машине дополнительные возможности.

В VMware соответствующая команда есть в меню вирт.машины - она подмаунтит виртуальный CD, после чего надо будет зайти на него и запустить команду установки инструментов, аналогично в Virtual Box.

Вот видеоурок по VMWare: https://www.youtube.com/watch?v=g3QxYQpwc4Q


## При установке утилиты для гитлаб просит пароль, а ввести не даёт (в терминал текст не пишется). Что делать?

То, что при вводе пароля вы не видите текст - это нормально, таким образом он скрывается с целью безопасности. Просто введите его вслепую.

Если пароль "не подходит", значит ваш пользователь не является sudoer'ом
Убедитесь, что помните пароль от root и при выполнении команды при помощи sudo используйте его."


## По умолчанию не работает буфер обмена между хостовой и гостевой машиной (VMWare), не могу найти в настройках, чтобы включить проброс. Что делать?

Нужно установить VMWare Tools. Вот видеоурок https://www.youtube.com/watch?v=g3QxYQpwc4Q


## Как разрешить доступ по ssh в убунту 20.04? Спрашивает логин пароль и в ответ сообщает Access denied

Если ставили десктопную версию, нужно будет установить OpenSSH-сервер вручную:

```
sudo apt-get install openssh-server
```

По идее ssh-сервер стартанет автоматически, проверить, что он работает можно командой:

```
sudo systemctl status ssh
```

Если выведет `active (running)`, то все ок.

Если вдруг команда показывает, что ssh-сервер не стартанул, выполните команды:

```
sudo systemctl enable ssh
sudo systemctl start ssh
```

Затем в файерволе нужно открыть 22 порт (это дефолтный порт для SSH, в продовой инфраструктуре рекомендуется для SSH использовать случайный порт, но для простоты в учебных целях будем использовать 22й):

```
sudo ufw allow ssh
sudo ufw enable
sudo ufw status
```

Этого должно быть достаточно.

Если ставили серверную убунту и при установке не указали, что нужно поставить OpenSSH, то по этой же инструкции нужно установить его. Если OpenSSH ставили, но доступа нет, то выполните инструкции для открытия порта выше.


## В инструкции на примере jino.ru на скринах указан для выбора сервер с 4гб. Это просто такой пример, а на самом деле нужно брать с 8гб, так как они минимальны по требованиям для Gitlab? Или все-таки 4Гб будет достаточно?

4 гигабайта достаточно в рамках курса (для запуска и работы одного пользователя).
