GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Gitlab s PostgreSQL a Nginx na Ubuntu 15.04

Gitlab je webová aplikace pro správu úložiště git napsaná na Ruby. Je podobný GitHubu a obsahuje funkce, jako je wiki projektu a systém sledování problémů. Projekt Gitlab zahájil Dmitriy Zaporozhets a software používá více než 100 000 technologických společností včetně IBM, StackExchange, NASA, Alibaba, Red Hat atd. Gitlab je jedním z nejlepších řešení pro vybudování vlastního git serveru.

Gitlab je podporován hlavními distribucemi Linuxu, jako je Ubuntu, Debian a CentOS. Gitlab poskytuje balíček .deb pro Debian/Ubuntu a balíčky .rpm pro Rhel a CentOS. Balíček obsahuje všechny závislosti včetně Ruby, Redis, Nginx, Unicorn a PostgreSQL. Gitlab je dostupný ve 2 verzích, Community Edition (Gitlab CE) a Enterprise Edition (Gitlab EE). Pokud si chcete vytvořit svůj vlastní git server, pak s největší pravděpodobností bezplatné vydání CE nabídne všechny funkce, které potřebujete.

V tomto tutoriálu vás krok za krokem provedu instalací Gitlabu CE s PostgreSQL jako databázovým systémem a Nginx jako webovým serverem na verzi Ubuntu 15.04. Budeme používat Ruby verzi 2.x.x, gitlab stabilní verzi 8.x.

Předpoklady

  • Ubuntu 15.04 – 64bit.
  • CPU 2 Cores – doporučeno ze stránek gitlab .
  • 2 GB RAM/paměť – doporučeno ze stránek gitlab .
  • Oprávnění uživatele root.

Krok 1 – Aktualizace systému Linux

Než nainstalujeme závislosti Gitlabu, stáhneme nejnovější aktualizace z úložiště ubuntu. Přihlaste se k serveru ubuntu s přístupem SSH,  staňte se uživatelem root a poté aktualizujte úložiště.

sudo su
aktualizace apt-get

Krok 2 – Instalace závislostí Gitlab

Gitlab má mnoho softwarových závislostí, jako je redis-server, git-core, nodejs a postfix pro odesílání e-mailových upozornění. Nainstaluji je jediným příkazem apt:

sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxs openssl-dev libicu-dev logrotate python-docutils pkg-config cmake nodejs git-core postfix

Poznámka:Během instalaci postfixu, vyberte „internet site“ a poté stisknutím klávesy Enter potvrďte název hostitele.

Pokud jsou nainstalovány všechny balíčky, zkontrolujte verzi git a ujistěte se, že verze git je 1.7.x nebo vyšší.

git --version
git verze 2.1.4

Krok 3 – Instalace Ruby and Go

Gitlab vyžaduje rubínovou verzi 2.x nebo vyšší. V tomto tutoriálu použijeme ruby ​​verze 2.7. V této fázi musíme nainstalovat ruby ​​ručně (ze zdroje). Pokud jste již ruby ​​na svém systému nainstalovali, odeberte jej příkazem níže:

apt-get remove ruby ​​-y

Dále nainstalujeme ruby ​​ručně. Vytvořte nový adresář pro zdrojové soubory ruby:

mkdir -p /tmp/ruby &&cd /tmp/ruby

Stáhněte si zdroj ruby ​​pomocí příkazu curl:

curl -O --progress https://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.7.tar.gz

Nyní ověřte a extrahujte soubor ruby.tar.gz, poté zadejte adresář ruby:

echo 'e2e195a4a58133e3ad33b955c829bb536fa3c075  ruby-2.1.7.tar.gz' | shasum -c - &&\
tar xzf ruby-2.1.7.tar.gz &&\
cd ruby-2.1.7

Zkompilujte a nainstalujte Ruby:

./configure --disable-install-rdoc --prefix=/usr/local
make
make install

Jako další krok musíme nainstalovat Go. Od gitlabu 8.0 je požadavek git HTTP zpracováván nástrojem gitlab-workhorse, který je napsán v Go. K instalaci gitlab-workhorse potřebujeme kompilátor go, stáhněte si jej a nainstalujte.

Vytvořte nový adresář pro Go:

mkdir -p /tmp/go &&cd /tmp/go

Stáhnout Go – používáme 64bitovou verzi:

curl -O --progress https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz

Ověřte a rozbalte jej do adresáře "/usr/local/":

echo '46eecd290d8803887dec718c691cc243f2175fe0  go1.5.1.linux-amd64.tar.gz' | shasum -c - &&\
sudo tar -C /usr/local -xzf go1.5.1.linux-amd64.tar.gz

Nyní vytvořte symbolický odkaz pro Go v adresáři bin:

sudo ln -sf /usr/local/go/bin/{go,godoc,gofmt} /usr/local/bin/

Nyní máme nainstalovaný Ruby and Go.

Krok 4 – Vytvořte nového uživatele Linuxu a nakonfigurujte databázi PostgreSQL

V tomto kroku vytvoříme nového uživatele systému Linux s názvem "git" s domovským adresářem "/home/git". Gitlab bude později spuštěn jako uživatel git.

Vytvořte nového uživatele git pomocí příkazu adduser:

sudo adduser --disabled-login --gecos 'GitLab' git

Nyní nakonfigurujeme databázi pro gitlab. Gitlab podporuje MySQL a PostgreSQL, v tomto tutoriálu použijeme doporučený typ databáze PostGreSQL.

Nainstalujte PostgreSQL pomocí příkazu apt níže:

sudo apt-get install -y postgresql postgresql-client libpq-dev

Po dokončení se přihlaste do PostgreSQL a vytvořte novou roli/uživatele s názvem „git " pro gitlab:

sudo -u postgres psql -d template1
VYTVOŘIT UŽIVATELE git CREATEDB;

Poté vytvořte novou databázi pro gitlab s názvem „gitlabhq_production " a udělte databázi uživateli/roli git:

CREATE DATABASE gitlabhq_production OWNER git;

Nyní ukončete prostředí postgresql a otestujte novou roli/uživatele s databází, kterou jsme vytvořili:

\q
sudo -u git -H psql -d gitlabhq_production

Byl vytvořen nový systémový uživatel s názvem "git".

Byla také vytvořena nová role/uživatel "git" pro psotgreSQL, která byla přidělena databázi gitlab "gitlabhq_production".

Krok 5 – Konfigurace serveru Redis

Než upravíme konfigurační soubor redis v adresáři „/etc/redis“, vytvoříme záložní kopii s názvem redis.conf.original.

cd /etc/redis/
cp redis.conf redis.conf.original

Poté upravte soubor "redis.conf" pomocí editoru vim:

vim redis.conf


Přejděte na řádek 45 a změňte hodnotu na 0 , protože chceme, aby Redis naslouchal pouze na unixovém soketu a ne na portu:

Poslouchejte 0

Poté přejděte na konec souboru a přidejte soket redis a oprávnění k němu:

unixsocket /var/run/redis/redis.sock
unixsocketperm 777

Uložte soubor a ukončete.

Dále vytvořte nový adresář pro soket redis v adresáři "/var/run" a upravte vlastníka a oprávnění adresáře:

mkdir -p /var/run/redis
chown redis:redis /var/run/redis
chmod 755 /var/run/redis

Přejděte do adresáře soketu redis a spusťte níže uvedený příkaz:

cd /var/run/redis
if [ -d /etc/tmpfiles.d ]; then
  echo 'd  /var/run/redis  0755  redis  redis  10d  -' | sudo tee -a /etc/tmpfiles.d/redis.conf
fi

Pokud je vše hotovo, restartujte server redis a přidejte uživatele „git“ do skupiny „redis“:

restart služby sudo redis-server
sudo usermod -aG redis git

Krok 6 – Instalace GitLab

Přejděte do adresáře "/home/git" a stáhněte si gitlab z jeho úložiště GIT:

cd /home/git
sudo -u git -H git klon https://gitlab.com/gitlab-org/gitlab-ce.git -b 8-2-stable gitlab

Poznámka:

klon sudo -u git -H command =spustíme příkaz "clone" jako uživatel "git".

- Konfigurace GitLab

Přejděte do adresáře gitlab a nakonfigurujte gitlab:

cd /home/git/gitlab

Zkopírujte příklad konfiguračního souboru gitlab gitlab.yml.example do gitlab.yml v adresáři "config":

sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml

V adresáři gitlab změňte vlastníka podadresářů "log and tmp" na uživatele git:

sudo chown -R git {log,tmp}

Poté změňte oprávnění pro ostatní adresáře, aby do nich gitlab (uživatel git) mohl zapisovat:

mkdir -p public/uploads/
sudo chmod -R u+rwX,go-w log/
sudo chmod -R u+rwX {tmp,tmp/pids,tmp/sockets,builds ,shared/artifacts}
sudo chmod -R 0750 public/uploads

Zkopírujte příklady konfigurací útoku jednorožec a Rack:

sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb

Nyní musíme nakonfigurovat globální nastavení pro uživatele git pomocí příkazu git níže:

sudo -u git -H git config --global core.autocrlf input

A musíme nakonfigurovat připojení redis zkopírováním souboru "resque.yml" do adresáře config, poté jej upravit pomocí vim, aby se změnila konfigurace redis, použít unixový soket, jak jsme nakonfigurovali redis, aby naslouchal na soketu:

sudo -u git -H cp config/resque.yml.example config/resque.yml

- Konfigurace databáze

Dalším krokem je konfigurace nastavení GitLab DB, pro naši databázi používáme postgreSQL. Zkopírujte konfigurační soubor a změňte oprávnění:

sudo -u git -H cp config/database.yml.postgresql config/database.yml
sudo -u git -H chmod o-rwx config/database.yml

- Nainstalujte drahokam

instalační balíček sudo gem
instalace balíčku sudo -u git -H --deployment --bez testu vývoje mysql aws kerberos

Počkejte, dokud příkazy neskončí.

- Instalace Gitlab-shell

Gitlab-shell umožňuje SSH přístup a správu úložiště pro Gitlab. Použijeme výchozí konfiguraci, takže ji nemusíme upravovat. Spusťte příkaz níže a nainstalujte gitlab-shell:

sudo -u git -H bundle exec rake gitlab:shell:install[v2.6.8] REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production

REDIS_URL =ujistěte se, že používáte unixový socket pro konfiguraci redis v produkčním prostředí.

- Instalovat gitlab-workhorse

Gitlab-workhorse je malý démon, který zvládne provoz Git HTTP z unicornu, kódovaný v Go. Klonujte a nainstalujte jej:

cd /home/git
sudo -u git -H git klon https://gitlab.com/gitlab-org/gitlab-workhorse.git
cd gitlab-workhorse
sudo -u git -H git checkout 0.4.2
sudo -u git -H make

- Inicializace databáze a aktivace funkcí gitlabu

Přejděte do instalačního adresáře gitlab a spusťte příkaz níže:

cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production

zadejte "ano" k vytvoření tabulek.

Výsledkem bude gitlab účet s uživatelským jménem "root “ a heslo „5iveL!fe ".

."

Krok 7 – Konfigurace iniciačního skriptu

Zkopírujte gitlab init script z instalačního adresáře gitlabu a přidejte gitlab, aby se spustil při bootování pomocí příkazu update-rc.d:

sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
sudo update-rc.d gitlab defaults 21

Poté zkopírujte konfiguraci gitlab logrotate pro správu protokolů:

sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab

A zkontrolujte stav aplikace a zkompilujte aktiva:

sudo -u git -H balíček exec rake gitlab:env:info RAILS_ENV=produkce
sudo -u git -H svazek exec rake aktiva:precompile RAILS_ENV=produkce

Pokud nenastane žádná chyba, spusťte gitlab pomocí:

/etc/init.d/gitlab start

Krok 8 – Instalace a konfigurace Nginx

Nginx budeme používat jako přední webový server pro zpracování požadavků prohlížeče. Stačí jej nainstalovat pomocí tohoto příkazu apt:

apt-get install nginx -y

Zkopírujte konfiguraci virtuálního hostitele Nginx z adresáře gitlab a odstraňte výchozí výchozí virtuální hostitel Nginx:

sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
sudo rm /etc/nginx/sites-enabled/default

Upravte konfigurační soubor pomocí vim:

sudo vim /etc/nginx/sites-available/gitlab

Změňte hodnotu řádků Listen a ServerName v sekci HTTP:

Poslouchej *:80; #Port Default

#Listen 0.0.0.0:80; #comment jeden z tohoto

ServerName my.gitlab.me; #Gitlab FQDN/doména

Uložte a ukončete.

Aktivujte gitlab virtualhost, spusťte nginx a restartujte gitlab:

sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
služba nginx start
/etc/init.d/gitlab restart

Nyní můžete ke gitlabu přistupovat pomocí svého prohlížeče na my.gitlab.me (název hostitele, který jste zvolili pro svůj server) a přihlaste se pomocí výchozího uživatelského jména "root" “ a heslo „5iveL!fe ".

."

Nejprve byste měli nahradit výchozí heslo gitlabu svým heslem.

Gitlab 8 s PostgreSQL a Nginx na ubuntu 15.04 je nyní úspěšně nainstalován.

Poznámka:

Pokud máte chybu, například "502 špatná brána", opravte ji zvýšením časového limitu pro jednorožce nebo upgradujte hardware. Přejděte do instalačního adresáře gitlab a upravte soubor unicorn.rb pomocí vim:

sudo -u git -H vim config/unicorn.rb

Další informace o odstraňování problémů s Gitlab naleznete zde https://github.com/gitlabhq/gitlab-public-wiki/wiki/Trouble-Shooting-Guide.

Závěr

Gitlab je open source software pro správu úložiště git napsaný v Ruby. Je to jedno z nejlepších řešení pro vytvoření vlastního git serveru. Gitlab vytvořil Dmitriy Zaporozhets a je k dispozici ve 2 verzích, Gitlab CE (Community Edition) a Gitlab EE (Enterprise Edition). Gitlab se snadno instaluje a konfiguruje s nádherným rozhraním, které používá více než 100 000 technologických společností. Je to velmi výkonný software, který pomáhá vývojářům vytvářet aplikace společně s dalšími vývojáři.


Ubuntu
  1. Jak nainstalovat Mattermost s PostgreSQL a Nginx na Ubuntu 16.04

  2. Jak nainstalovat Postgresql a phpPgAdmin na Ubuntu 15.04

  3. Jak nainstalovat Nginx s PHP5 a MySQL na Ubuntu 11.10

  1. Jak nainstalovat Ruby on Rails (RoR) s PostgreSQL na Ubuntu 16.04

  2. Jak nainstalovat MediaWiki s Nginx na Ubuntu 16.04

  3. Jak nainstalovat Magento 2 s Nginx a Letsencrypt na Ubuntu 18.04

  1. Jak nainstalovat Magento s Nginx na Ubuntu 15.10

  2. Jak nainstalovat Drupal 8 s Nginx, PHP-FPM a SSL na Ubuntu 15.10

  3. Jak nainstalovat Mailpile s Nginx na Ubuntu 15.10