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.rbNyní 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 inputA 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 kerberosPoč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=productionREDIS_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=productionzadejte "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 21Poté zkopírujte konfiguraci gitlab logrotate pro správu protokolů:
sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlabA 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=produkcePokud 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 -yZkopí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/defaultUpravte konfigurační soubor pomocí vim:
sudo vim /etc/nginx/sites-available/gitlabZměň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énaUlož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 restartNyní 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.
The Perfect Server – Ubuntu 15.10 (nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD a ISPConfig 3) Jak nainstalovat ProFTPd s podporou TLS na Ubuntu 15.10Ubuntu