Инсталляция GitLab в Ubuntu 20.04 из пакетов

Делаю:
02.02.2021


Предполагается что уже установлен VirtualBox, Vagrant.


// Также предполагается, что установлен vagrant-hostmanager
$ vagrant plugin install vagrant-hostmanager


Для начала в hosts клиента пропишу


$ sudo vi /etc/hosts

192.168.0.5 gitlab.local


Поднимаю в виртуалке GitLab

$ mkdir ~/vagrant-gitlab && cd ~/vagrant-gitlab


Создаю Vagrantfile для виртуалки


Рекомендуется по меньшей мере 4GB оперативной памяти. Делал с меньшим размером на виртуалке, получал ошибку на шаге:

* bash[migrate gitlab-rails database] action run

С кодом ошибки, 137, о которой в интернетах пишут, что это код закончившейся оперативной памяти.


C 4GB зависала. Накинул еще 1GB.


$ cat <<EOF >> Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

ENV['VAGRANT_NO_PARALLEL'] = 'yes'

Vagrant.configure(2) do |config|
  config.vm.box = "ubuntu/focal64"
  config.hostmanager.enabled = true
  config.hostmanager.include_offline = true

  config.vm.provider "virtualbox" do |vb|
    vb.memory = "5120"
    vb.cpus = 2
  end

  config.vm.define "gitlab.local" do |c|
    c.vm.hostname = "gitlab.local"
    c.vm.network "private_network", ip: "192.168.0.5"
  end
end
EOF


$ vagrant box update
$ vagrant up


$ vagrant ssh gitlab.local


Внутри виртуальной машины:


$ sudo apt update && sudo apt upgrade -y


$ sudo apt install -y \
    openssh-server \
    rar unrar-free \
    unzip


Создаю пользователя “gitlab”

$ sudo su  -
# adduser --disabled-password --gecos "" gitlab
# usermod -aG sudo gitlab
# passwd gitlab


Предоставляю возможность подключения по SSH

# sed -i "s/.*PasswordAuthentication.*/PasswordAuthentication yes/g" /etc/ssh/sshd_config

# service sshd reload


Разрешаю выполнение команд sudo без пароля


# vi /etc/sudoers


%sudo ALL=(ALL:ALL) ALL

меняю на:

#%sudo   ALL=(ALL:ALL) ALL
%sudo   ALL=(ALL:ALL) NOPASSWD:ALL


Убедиться, что прописан gitlab.local

# vi /etc/hosts
192.168.0.5 gitlab.local


# apt install -y ca-certificates curl openssh-server postfix


PostFix Configuration –> Internet Site


Чтобы какой-то пакет брался из репо gitlab а не репо ubuntu

# cat <<EOF | sudo tee /etc/apt/preferences.d/pin-gitlab-runner.pref
Explanation: Prefer GitLab provided packages over the Debian native ones
Package: gitlab-runner
Pin: origin packages.gitlab.com
Pin-Priority: 1001
EOF


Подключаю оф. репозитории


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

# curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash


$ sudo apt install -y gitlab-ce gitlab-runner


$ sudo gitlab-runner -version


$ sudo gitlab-runner status


# vi /etc/gitlab/gitlab.rb


Указываю вместо:
    external_url 'http://gitlab.example.com'

Свой hostname:
    external_url 'http://gitlab.local'


# gitlab-ctl reconfigure && gitlab-ctl restart


http://gitlab.local

Поменять пароль для пользователя root. Далее зайти под root с зданным паролем.