GitLab je open source správce úložiště založený na Rails vyvinutý společností GitLab Inc. Je to webový správce úložiště git, který umožňuje vašemu týmu spolupracovat na kódování, testování a nasazování aplikací. GitLab poskytuje několik funkcí, včetně wiki, sledování problémů, recenzí kódu a zdrojů aktivit.
GitLab Inc nabízí 4 produkty:
- Gitlab CE (Community Edition) – hostovaný a bezplatný; podpora z fóra komunity.
- Gitlab EE (Enterprise Edition) – hostovaný a placený; přichází s dalšími funkcemi.
- GitLab.com – SaaS a zdarma.
- GitLab.io – Soukromá instance GitLab spravovaná společností GitLab Inc.
V tomto tutoriálu budeme diskutovat o instalaci GitLab CE (Community Edition) krok za krokem na CentOS 7 Server se 4 GB RAM. V jednom z našich předchozích tutoriálů jsme provedli instalaci GitLab ručně. Zde však pro naši instalaci použijeme balíček 'omnibus' poskytovaný GitLab.
Co uděláme
- Instalujte balíčky
- Nainstalujte GitLab
- Nakonfigurujte adresu URL GitLab
- Vygenerujte SSL Let's encrypt a DHPARAM certifikát
- Povolte Nginx HTTPS pro GitLab
- Nakonfigurujte bránu firewall
- Proveďte instalaci GitLab
- Testování
Předpoklady
- Server CentOS 7 – 64bitový
- Minimálně 2 GB RAM
- Oprávnění uživatele root
Krok 1 – Instalace balíčků
V tomto kroku si stáhneme/nainstalujeme některé balíčky potřebné pro instalaci GitLabu. Ke stažení instalačního programu úložiště, policycoreutils pro správce SELinux, OpenSSH a postfixu jako místního serveru SMTP použijeme curl.
Nainstalujte všechny tyto balíčky pomocí následujícího příkazu yum.
yum -y install curl policycoreutils openssh-server openssh-clients postfix
Poté spusťte služby ssh a postfix.
systemctl start sshd
systemctl start postfix
Nyní jim povolte jejich automatické spouštění při spouštění.
systemctl enable sshd
systemctl enable postfix
Všechny balíčky potřebné pro instalaci GitLab jsou nyní nainstalovány na serveru.
Krok 2 – Instalace GitLab
GitLab poskytuje instalační program pro přidání úložiště GitLab CE. Stáhněte si instalační program pomocí curl a spusťte skript (jak je znázorněno níže) pro přidání nového úložiště GitLab CE.
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
Do systému bylo přidáno úložiště GitLab CE.
Nyní nainstalujte GitLab pomocí následujícího příkazu yum.
yum -y install gitlab-ce
Po dokončení instalace získáte výsledek, jak je znázorněno níže.
Díky tomu je GitLab CE nyní nainstalován na serveru CentOS 7.
Krok 3 – Konfigurace adresy URL GitLab
V tomto tutoriálu použijeme název domény pro GitLab. Konkrétně budeme používat název domény 'gitlab.hakase-labs.co.'
Přejděte do konfiguračního adresáře GitLab '/etc/gitlab' a poté upravte konfigurační soubor 'gitlab.rb' pomocí editoru vim.
cd /etc/gitlab/
vim gitlab.rb
Změňte řádek external_url na název domény 'gitlab.hakase-labs.co '.
external_url 'http://gitlab.hakase-labs.co'
Uložte změny a ukončete vim.
Krok 4 – Generování SSL Pojďme šifrovat a certifikát DHPARAM
Pro základní vrstvu zabezpečení budeme používat SSL pro náš web GitLab. Použijeme bezplatný certifikát SSL od společnosti Letsencrypt a vygenerujeme certifikát DHPARAM, abychom přidali další vrstvu zabezpečení.
Abychom vygenerovali certifikát Letsencrypt, musíme nainstalovat nástroj příkazového řádku letsencrypt, který je k dispozici v úložišti.
Nainstalujte nástroj Letsencrypt na CentOS 7 pomocí příkazu yum níže.
yum -y install letsencrypt
Po dokončení instalace vygenerujte nový SSL certifikát letsencrypt pomocí příkazu níže.
letsencrypt certonly --standalone -d gitlab.hakase-labs.co
Poznámka: Při generování SSL Letsencrypt se ujistěte, že váš port HTTP a HTTPS není blokován bránou firewall.
Zadejte svou e-mailovou adresu pro obnovení oznámení, poté zadejte „A“ pro podmínky smlouvy Letsencrypt a nakonec zadejte „N“ a znovu stiskněte Enter.
A pokud vidíte výsledek, jak je uvedeno níže, znamená to, že váš certifikát pro název domény byl vygenerován a uložen v adresáři '/etc/letsencrypt/live'.
Dále vytvořte nový adresář 'ssl' v konfiguračním adresáři GitLab '/etc/gitlab/'.
mkdir -p /etc/gitlab/ssl/
Nyní vygenerujte soubor pem certifikátu DHPARAM pomocí OpenSSL. Větší část je bezpečnější.
sudo openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
A po vygenerování certifikátu DHPARAM změňte oprávnění souboru certifikátu na 600.
chmod 600 /etc/gitlab/ssl/*
Byly tedy vygenerovány certifikáty SSL Letsencrypt a DHPARAM pro instalaci GitLab.
Krok 5 – Povolení Nginx HTTPS pro GitLab
V této fázi již máme bezplatné soubory certifikátů SSL z Letsencrypt a certifikát DHPARAM, který je generován pomocí příkazu OpenSSL. A v tomto kroku povolíme HTTPS pro web GitLab. Povolíme HTTPS a vynutíme HTTP připojení HTTPS.
Nejprve přejděte do konfiguračního adresáře GitLab a upravte konfigurační soubor 'gitlab.rb'.
cd /etc/gitlab/
vim gitlab.rb
A změňte HTTP na HTTPS na řádku external_url.
external_url 'https://gitlab.hakase-labs.co'
Poté vložte následující konfiguraci pod konfiguraci řádku 'external_url'.
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"
Uložte změny a ukončete vim.
Nakonec použijte konfiguraci GitLab pomocí následujícího příkazu.
gitlab-ctl reconfigure
A když je vše dokončeno, měli byste získat výsledek, jak je znázorněno níže.
Krok 6 – Konfigurace brány firewall
V tomto tutoriálu spustíme GitLab pod firewallem Firewalld. Ujistěte se tedy, že je v systému nainstalován. Pokud balíček nemáte, můžete jej nainstalovat pomocí následujícího příkazu.
yum -y install firewalld
Spusťte firewalld a povolte jeho automatické spouštění při spouštění pomocí příkazů systemctl, jak je uvedeno níže.
systemctl start firewalld
systemctl enable firewalld
Dále otevřete nové porty pro naše služby. Otevřeme porty SSH, HTTP a HTTPS pro naši konfiguraci GitLab. Spuštěním příkazů firewall-cmd níže otevřete porty.
firewall-cmd --permanent --add-service ssh
firewall-cmd --permanent --add-service http
firewall-cmd --permanent --add-service https
Nyní znovu načtěte firewall a zkontrolujte konfiguraci firewallu. Ujistěte se, že SSH, HTTP a HTTPS jsou na seznamu.
firewall-cmd --reload
firewall-cmd --list-all
Tímto je tedy konfigurace Firewallu pro GitLab dokončena.
Krok 7 – Proveďte instalaci
GitLab byl tedy nainstalován do systému a běží pod firewallem Firewalld. V tomto kroku provedeme některá rychlá nastavení po instalaci GitLabu na server.
Obnovit kořenové heslo GitLab
Otevřete webový prohlížeč a zadejte adresu URL gitlab 'gitlab.hakase-labs.co'. Budete přesměrováni na připojení HTTPS. Změňte heslo uživatele root svým vlastním heslem a potvrďte kliknutím na tlačítko „Změnit heslo“.
Nyní se můžete přihlásit k řídicímu panelu GitLab pomocí výchozího uživatelského 'root' a svého vlastního hesla.
Změnit profil a uživatelské jméno
Po přihlášení do řídicího panelu GitLab klikněte v pravém horním rohu svého profilu ikony a kliknutím na ikonu 'Nastavení' nastavte svůj profil.
Na kartě 'Profil' změňte své jméno a e-mailovou adresu a potvrďte kliknutím na tlačítko 'Aktualizovat nastavení profilu' ve spodní části.
Dále přejděte na kartu 'Účet' a změňte výchozí uživatelské jméno root na své vlastní uživatelské jméno a poté klikněte na tlačítko 'Aktualizovat uživatelské jméno'.
Přidat klíč SSH
Ujistěte se, že již máte klíč, pokud nemáte klíč SSH, můžete si jej vygenerovat pomocí příkazu níže.
ssh-keygen
A získáte dva klíče v adresáři ~/.ssh/. 'id_rsa' by byl váš soukromý klíč a 'id_rsa.pub' by byl váš veřejný klíč.
Dále se vraťte do webového prohlížeče a klikněte na kartu 'SSH Key'. Zkopírujte obsah souboru 'id_rsa.pub' a vložte jej do pole klíče a klikněte na 'Přidat klíč'.
Tímto byl aktualizován klíč SSH.
Omezení registrace a nastavení limitů
Klikněte na ikonu 'Admin Area' a poté klikněte na ikonu ozubeného kola a vyberte 'Settings'.
V části „Nastavení účtu a limitu“ můžete nakonfigurovat maximální počet projektů na uživatele. A v sekci 'Omezení registrace' můžete přidat název domény svého e-mailu do seznamu povolených.
Po tom všem přejděte dolů a klikněte na 'Uložit'.
A je to. Základní konfigurace GitLabu byla dokončena.
Krok 8 – Testování
Nyní provedeme nějaké testování s naším GitLab, který je hostován samostatně.
Vytvořit nový projekt
Kliknutím na ikonu plus vpravo nahoře vytvoříte nové úložiště projektu.
Zadejte název projektu, popis a nastavení viditelnosti pro váš projekt. A poté klikněte na tlačítko 'Vytvořit projekt'.
Tímto byl projekt vytvořen.
Otestujte první potvrzení
Po vytvoření vašeho projektu (v našem případě howtoforge) budete přesměrováni na stránku projektu. Nyní začněte přidávat nový obsah do úložiště.
Ujistěte se, že je na vašem počítači nainstalován Git.
Pro tento test musíme v počítači nastavit účet Git, což můžete provést pomocí následujících příkazů:
git config --global user.name "hakase"
git config --global user.email "[email protected]"
Naklonujte úložiště a přidejte nový soubor README.md.
git clone https://[email protected]/hakase/howtoforge.git
cd howtoforge/
vim README.md
Budete požádáni o heslo hakase. Zadejte stejné heslo, jaké jsme použili při prvním přístupu do GitLab, a poté přidejte nový obsah do souboru README.md.
Proveďte nové změny v úložišti pomocí následujících příkazů.
git add .
git commit -m 'Add README.md file by hakase-labs'
Dále přesuňte úložiště na server GitLab.
git push origin master
Zadejte své heslo a pokračujte stisknutím klávesy Enter. Měli byste vidět výsledek, jak je uvedeno níže.
Nyní otevřete projekt (v našem případě howtoforge) ve svém webovém prohlížeči a uvidíte, že do úložiště byl přidán nový soubor README.md.
To tedy potvrzuje, že Gitlab je úspěšně nainstalován na Ubuntu CentOS 7 se 4 GB paměti.