Инсталляция 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 с зданным паролем.