GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Gitlab Server s Dockerem na Ubuntu 18.04 LTS

Gitlab CE nebo Community Edition je aplikace s otevřeným zdrojovým kódem, která se používá k hostování vašich úložišť Git. Vlastní hostování vašich repozitářů Git vám poskytuje úplnou kontrolu nad vašimi daty a zároveň poskytuje snadno použitelné rozhraní pro vás a členy vašeho týmu.

V této příručce se budeme zabývat tím, jak nainstalovat úložiště Git pomocí bezplatné nabídky Gitlabu, Community Edition. Pokud chcete pokročilé funkce, jako je schvalování sloučení, plány, správa portfolia, obnova po havárii, skenování kontejnerů atd., můžete se rozhodnout upgradovat na verzi Enterprise.

Předpoklady

  • Server založený na Ubuntu 18.04 s uživatelem sudo, který není root.
  • Potřebujete VPS s minimálně 2 CPU jádry a 8GB RAM podle specifikovaných hardwarových požadavků pro Gitlab CE, který bude podporovat 100 uživatelů. I když můžete za RAM nahradit odkládací prostor, nedoporučuje se to, protože aplikace poběží pomaleji.

Krok 1 – Instalace závislostí

Než nainstalujeme Gitlab, musíme se ujistit, že náš server má určitý software, který bude Gitlab potřebovat, aby fungoval správně. Spuštěním následujících příkazů nainstalujte závislosti.

$ sudo apt update
$ sudo apt install ca-certificates curl openssh-server ufw apt-transport-https -y

Některý z výše uvedeného softwaru pro vás může být předinstalován.

Krok 2 – Změňte port SSH vašeho systému

Gitlab bude používat port 22 pro push repozitáře přes SSH. Také na něm běží SSH vašeho serveru, což způsobí konflikt. Existují dva způsoby, jak toho dosáhnout. Buď můžete změnit port SSH, který používáte pro připojení k vašemu systému, nebo můžete změnit port, který Gitlab použije pro SSH. V tomto tutoriálu změníme port SSH pro samotný server.

K tomu musíme upravit soubor /etc/ssh/sshd_config. Otevřete soubor v textovém editoru nano.

$ sudo nano /etc/ssh/sshd_config

Najděte následující řádek a změňte 22 na 6622 a odstraňte # před ním. Můžete si vybrat libovolný port.

# Port 22

Stiskněte Ctrl + X pro zavření souboru a stiskněte Y pro uložení změn.

Restartujte službu SSH.

$ sudo systemctl restart sshd

Zavřete aktuální relaci SSH a vytvořte novou s portem 6622 a znovu se připojte k serveru.

$ ssh [email protected] -p 6622

Krok 3 – Konfigurace brány firewall

V našem předchozím kroku jsme nainstalovali ufw (Uncomplicated Firewall). Než budeme moci přistoupit k instalaci Gitlabu, musíme jej nakonfigurovat.

Povolte SSH a port, který jsme právě vytvořili, abyste nebyli zablokováni.

$ sudo ufw allow OpenSSH
$ sudo ufw allow 6622

Povolte ufw firewall.

$ sudo ufw enable

Musíme také povolit http a https, aby Gitlab fungoval.

$ sudo ufw allow http
$ sudo ufw allow https

Zkontrolujte stav brány firewall.

$ sudo ufw status

Měli byste vidět výstup podobný následujícímu.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
6622                       ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
6622 (v6)                  ALLOW       Anywhere (v6)      
80/tcp (v6)                ALLOW       Anywhere (v6)             
443/tcp (v6)               ALLOW       Anywhere (v6)             

Krok 4 – Instalace Dockeru

Přidejte do svého systému klíč GPG společnosti Docker.

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Ověřte otisk staženého klíče.

$ sudo apt-key fingerprint 0EBFCD88

Měli byste vidět výstup podobný následujícímu.

pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <[email protected]>
sub   rsa4096 2017-02-22 [S]

Přidejte úložiště Docker.

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Aktualizujte databázi balíčků.

$ sudo apt update

Nainstalujte Docker-CE. CE je komunitní vydání Dockeru.

$ sudo apt install docker-ce -y

Docker by měl být nyní nainstalován. Zkontrolujte, zda běží.

$ sudo systemctl status docker

Výstup by měl být podobný následujícímu.

? docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-10-11 21:10:31 UTC; 32s ago
     Docs: https://docs.docker.com
 Main PID: 19128 (dockerd)
    Tasks: 12
   CGroup: /system.slice/docker.service
           ??19128 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Stisknutím q ukončíte.

Přidejte svůj omezený uživatelský účet systému Linux do skupiny docker, abyste mohli spouštět docker bez sudo.

sudo usermod -aG docker $USER

$USER proměnná vybere a přidá aktuálně přihlášeného uživatele do skupiny dockerů. Nahraďte $USER se skutečným uživatelským jménem, ​​pokud s tímto uživatelem aktuálně nejste přihlášeni.

Přepněte na uživatele, kterého jsme právě přidali. I když jste již byli přihlášeni, budete se na něj muset znovu přepnout, abyste znovu načetli oprávnění.

$ su - ${USER}

Zkontrolujte, zda vše běží správně spuštěním vestavěného programu „Hello World“.

$ docker run hello-world

Měli byste vidět následující výstup, který řekne, že Docker je nainstalován a funguje správně.

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete 
Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

Krok 5 – Instalace Docker Compose

Tento krok je možné přeskočit a pokračovat, ale s nainstalovaným Docker Compose bude běh Gitlabu mnohem snazší, zvláště pokud jej chcete provádět na více než jednom serveru.

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

V době psaní tohoto návodu je 1.24.1 aktuální stabilní vydání Docker Compose. Nejnovější verzi vydání můžete zkontrolovat na jejich stránce Github.

Použijte spustitelná oprávnění pro binární soubor pro vytvoření ukotvitelného panelu.

$ sudo chmod +x /usr/local/bin/docker-compose

Přidejte Dokončení příkazu do Docker Compose.

$ sudo curl -L https://raw.githubusercontent.com/docker/compose/1.24.1/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose

Ověřte, zda byla vaše instalace úspěšná.

$ docker-compose --version

Vytiskne následující výstup.

docker-compose version 1.24.1, build 4667896b

Krok 6 – Instalace Gitlabu

Stáhněte si obrázek Docker od Gitlabu z Dockerhubu. Tento obrázek obsahuje vše, co potřebujete ke spuštění Dockeru – nginx, PostgreSQL, Redis atd. Spusťte následující příkaz ke stažení obrázku.

$ docker pull gitlab/gitlab-ee:latest

I když je tento tutoriál o instalaci Community Edition, přesto si vezmeme image Enterprise Edition Gitlabu. Je to proto, že edice Enterprise se chová přesně jako edice Community, pokud na ni neupgradujete zadáním licence. Upgrade instalace Community Edition na Enterprise Edition přináší další komplikace.

Stažení kompletního obrázku bude chvíli trvat. Po dokončení úlohy můžete spustit následující příkaz a zkontrolovat všechny obrázky aktuálně ve vašem systému.

$ docker images

Výstup by měl vypadat podobně jako následující.

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
gitlab/gitlab-ee    latest              4bacb2356d28        4 days ago          1.87GB
hello-world         latest              fce289e99eb9        9 months ago        1.84kB

Krok 7 – Spusťte Gitlab

V tomto okamžiku můžeme okamžitě spustit kontejner Gitlab poskytnutím všech možností v jediném příkazu, ale to by znamenalo pokaždé, když potřebujete spustit kontejner, musíte zadat tyto proměnné. Docker Compose tento proces usnadňuje, protože vám umožní uložit konfiguraci do souboru .yml, který bude poté použit ke spuštění a spuštění kontejneru.

Vytvořte soubor docker-compose.yml.

$ nano docker-compose.yml

Vložte následující kód.

web:
  image: 'gitlab/gitlab-ee:latest'
  container_name: 'gitlab-howtoforge-tutorial'
  restart: always
  hostname: 'gitlab.example.com'
  environment:
    GITLAB_OMNIBUS_CONFIG: |
      external_url 'https://gitlab.example.com'
      gitlab_rails['smtp_enable'] = true
	  gitlab_rails['smtp_address'] = "smtp.gmail.com"
      gitlab_rails['smtp_port'] = 587
      gitlab_rails['smtp_user_name'] = "[email protected]"
      gitlab_rails['smtp_password'] = "app-password"
      gitlab_rails['smtp_domain'] = "smtp.gmail.com"
      gitlab_rails['smtp_authentication'] = "login"
      gitlab_rails['smtp_enable_starttls_auto'] = true
      gitlab_rails['smtp_tls'] = false
      gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
      # Add any other gitlab.rb configuration here, each on its own line
  ports:
    - '80:80'
    - '443:443'
    - '22:22'
    - '587:587'
  volumes:
    - '/srv/gitlab/config:/etc/gitlab'
    - '/srv/gitlab/logs:/var/log/gitlab'
    - '/srv/gitlab/data:/var/opt/gitlab'

Podívejme se, co každá z výše uvedených možností znamená.

  • obrázek odkazuje na umístění Docker obrazu Gitlabu na Dockerhubu.
  • název_kontejneru umožňuje použít štítek na váš kontejner dockeru, který se použije při odkazování na kontejner v síti Docker.
  • název hostitele definuje interní název hostitele kontejneru nebo v našem případě adresu URL, na kterou bude váš Gitlab nainstalován.
  • restartovat určuje zásadu restartování pro kontejner. Nastavili jsme to na vždy což znamená, že kontejner, pokud je opuštěn, bude automaticky restartován.
  • životní prostředí dodává proměnnou GITLAB_OMNIBUS_CONFIG což vám umožní zadat jakékoli konfigurační nastavení Gitlabu. V tomto případě jsme dodali externí URL, kterou má Gitlab používat.
  • objem definuje adresáře připojené k serveru pro ukládání trvalých dat. Tyto tři svazky/adresáře ukládají data aplikací, soubory protokolu a konfigurační soubory. Hodnota nalevo od středníku je místní adresář na serveru a hodnota napravo je adresář uvnitř kontejneru.
  • publikovat říká kontejneru, aby publikoval porty nebo rozsah portů na hostitele. Protože Gitlab potřebuje porty 22 (SSH), 80 (HTTP), 443 (HTTPS) a 587 (SMPT - MSA), specifikovali jsme je zde. Pokud chcete, aby Gitlab používal na vašem serveru nestandardní port (pravděpodobně proto, že není k dispozici), nejprve byste poskytli hostitelský port a poté kontejnerový port. Například, protože váš server již používá port SSH(22), můžete Gitlabu sdělit, aby používal SSH přes jiný port, řekněme 3333. Pak byste změnili 22:22 ve výše uvedeném souboru na 3333:22 . Budete také muset přidat řádek gitlab_rails['gitlab_shell_ssh_port'] =3333 pod GITLAB_OMNIBUS_CONFIG výše.
  • external_url odkazuje na doménu, kde bude váš Gitlab nainstalován. Vybrali jsme https, který za nás automaticky nainstaluje certifikát Let's Encrypt SSL.
  • Také jsme přidali další konfiguraci pro konfiguraci Gitlabu tak, aby používal Gmail k odesílání e-mailů. Můžete použít jakoukoli poštovní službu SMTP třetí strany. Dokumenty Gitlab udržují podrobného průvodce, jak s ním nakonfigurovat různé služby SMTP.

Ujistěte se, že jste ve stejném adresáři jako docker-compose.yml. Spusťte následující příkaz pro spuštění Gitlabu.

$ docker-compose up -d

Uvidíte něco jako následující.

Creating gitlab-howtoforge-tutorial ... done

Než budete mít přístup ke Gitlabu přes prohlížeč, potrvá ještě několik minut. Další informace o procesu spouštění můžete zjistit pomocí následujícího příkazu.

$ docker logs -f gitlab-howtoforge-tutorial

Chcete-li ukončit proces monitorování protokolu, stiskněte Ctrl + C.

Načtěte stránku Gitlab ve svém prohlížeči. Pokud se jej pokusíte načíst příliš krátce po spuštění kontejneru, zobrazí se chyba 502. Pokud k tomu dojde, počkejte ještě několik minut a zkuste to znovu.

Pokud je vše v pořádku, zobrazí se ve vašem prohlížeči následující stránka.

Krok 8 – Konfigurace Gitlab

Zadejte heslo pro heslo administrátora Gitlabu. Dále budete přesměrováni na přihlašovací obrazovku. Použijte root jako uživatelské jméno a heslo, které jste si právě zvolili pro přihlášení.

Konfigurovat SMTP

Než

budeme muset povolit nastavení SMTP

Konfigurovat profil Gitlab

Kliknutím na ikonu uživatele v pravém horním rohu vyvolejte rozevírací nabídku a vyberte nastavení.

Budete přesměrováni na stránku nastavení profilu. Zde přidejte své jméno a e-mail. Pro její aktualizaci budete muset potvrdit svou e-mailovou adresu. Pokud chcete, můžete sem také přidat další informace o sobě.

Klikněte na Aktualizovat nastavení profilu až budete hotovi.

Změnit uživatelské jméno

Dále musíme změnit naše uživatelské jméno z root na něco jiného, ​​jako root je docela běžné uhodnutelné uživatelské jméno. Klikněte na Účet na levém postranním panelu.

Změňte uživatele na jakékoli uživatelské jméno, které si chcete ponechat. Klikněte na Aktualizovat uživatelské jméno dokončit. Pro větší bezpečnost byste zde měli povolit dvoufaktorové ověřování.

Omezit veřejné registrace

Ve výchozím nastavení umožňují instalace Gitlabu komukoli se zaregistrovat. Pokud to nechcete, měli byste to vypnout. Kliknutím na ikonu klíče v horní liště otevřete oblast správy.

Chcete-li upravit nastavení, klikněte na Nastavení na levém postranním panelu.

Zde přejděte dolů na Omezení registrace a klikněte na Rozbalit knoflík. Zrušte zaškrtnutí políčka Registrace povolena a klikněte na Uložit změny až skončí.

Stále budete moci přidávat nové uživatele prostřednictvím rozhraní správce.

Přidat klíč SSH

Posledním krokem je přidání našeho klíče SSH. Pokud máte klíč SSH, můžete následující příkaz přeskočit. Pokud žádný nemáte, můžete si jej vytvořit pomocí následujícího příkazu.

$ ssh-keygen

Tento příkaz je společný pro Mac OS, Linux a Git Bash/WSL ve Windows. Přijměte výchozí nastavení a ponechte pole přístupové fráze prázdné.

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/gitlab
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in gitlab.
Your public key has been saved in gitlab.pub.
The key fingerprint is:
SHA256:6dNGAPyd8JAkHAikYOW2PsFjGlzBBpwy4XQ9RQgVwK8 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|+*OB=*O=..       |
|B+o+o+oo+        |
|oo.+. ...= .     |
|. + ..  .o+      |
| o *.   S .      |
|  =Eo  . o       |
| . o    o o      |
|    .    o       |
|                 |
+----[SHA256]-----+

Svůj veřejný klíč můžete zobrazit pomocí následujícího příkazu

$ cat ~/.ssh/gitlab.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUf64YH7uJimFWVJSy/mgYiLRqBxVB6JJMTxZZ96DwExoINhWVRhQAgMgExBWGpUCpWXhLcNuIM+EfFRtCq+YYyLC+GlHsNdnLgecGgop72p8BEi8UckgCiCSuMrWCMAOFh5NKs2YHpF7bOUjXQRVvGujLuV1UBof7SXQ/za7e3aybNiH3KpA6oWSSmpqnOt8rZT54IjLnVFUSLx7ZxWDVW1bO29mI8NjWwzZGLAtNIkJQEOqVo8nhVkroFHvBTrZnUsmr5oFOWG++LPqED9EUSPTpO8PNnogYT3xsVncBMMAEt0pPE7ATmstQc161SEtqAUa98Qb0RRKqCKcKStOp [email protected]

Vraťte se do oblasti Nastavení svého profilu a z postranního panelu otevřete klíče SSH.

Vložte klíč SSH do poskytnutého pole a klikněte na Přidat klíč pokračovat.

Nyní můžete vytvářet a odevzdávat svá úložiště, aniž byste museli poskytovat své přihlašovací údaje Gitlab.

Krok 9 – Vytvořte svůj první projekt

Každé úložiště v Gitlabu patří k projektu. Projekt zahrnuje úložiště, sledování problémů, požadavky na sloučení, wiki, kanály průběžné integrace a průběžného doručování (CI/CD) a spoustu dalších funkcí.

Chcete-li vytvořit první úložiště, klikněte na Vytvořit projekt .

Budete přesměrováni na stránku Nový projekt. Zadejte název projektu. Projektový slimák můžete změnit na něco jiného. Pokud chcete, zadejte popis projektu a změňte viditelnost projektu, jak si přejete. Své úložiště můžete inicializovat pomocí souboru README. Až budete hotovi, klikněte na Vytvořit projekt .

Budete přesměrováni na stránku svého úložiště pouze s jedním prázdným souborem README.md.

Nyní, když je náš repozitář aktivní, zkusme přidat changelog z příkazového řádku.

Zadáním následujících příkazů v počítači vytvořte soubor CHANGELOG a vložte jej zpět do svého úložiště. Ujistěte se, že máte v počítači nainstalovaný Git.

Klonujte úložiště. Můžete klonovat pomocí SSH nebo HTTPS.

Klonujte pomocí SSH.

$ git clone [email protected]:user/howtoforge-test.git

nebo Klonovat pomocí HTTPS.

$ git clone https://gitlab.example.com/user/howtoforge-test.git

Zadejte zbývající příkazy k vytvoření a stiskněte CHANGELOG.

$ cd howtoforge-test
$ touch CHANGELOG  # Or create the file in your editor and enter a project description
$ git add CHANGELOG
$ git commit -m "add Changelog"
$ git push -u origin master

Krok 10 – Správa kontejneru Gitlab

Chcete-li zobrazit všechny spuštěné kontejnery, spusťte následující příkaz.

$ docker-ps

Chcete-li zastavit svůj kontejner Gitlab, spusťte následující příkaz.

$ docker stop gitlab-howtoforge-tutorial

Chcete-li znovu spustit kontejner, použijte následující příkaz.

$ docker start gitlab-howtoforge-tutorial

V případě, že chcete kontejner odstranit, můžete tak učinit následujícím příkazem.

$ docker container rm gitlab-howtoforge-tutorial

Krok 11 – Upgrade Gitlabu

Pokud chcete upgradovat Gitlab na nejnovější verzi, musíte zastavit a odstranit stávající kontejner, stáhnout nejnovější image a poté kontejner znovu vytvořit.

$ docker stop gitlab-howtoforge-tutorial
$ docker rm gitlab-howtoforge-tutorial
$ docker pull gitlab/gitlab-ee:latest
$ docker-compose up -d

A než se zeptáte, vaše data budou v bezpečí, i když kontejner odstraníte.

Tímto končí náš tutoriál o nastavení Gitlabu na serveru Ubuntu 18.04 pomocí Dockeru. Pokud máte nějaké dotazy, napište je do komentářů níže.


Ubuntu
  1. Jak nainstalovat Docker na Ubuntu 16.04

  2. Jak nainstalovat RabbitMQ Server na Ubuntu 18.04 &16.04 LTS

  3. Jak nainstalovat Gitlab Server na Ubuntu 18.04 &16.04 LTS

  1. Jak nainstalovat Docker na Ubuntu 18.04

  2. Jak nainstalovat Xrdp Server na Ubuntu 20.04 LTS

  3. Jak nainstalovat Docker na Ubuntu 20.04 LTS

  1. Jak nainstalovat Docker na Ubuntu 20.04

  2. Jak nainstalovat Docker na Ubuntu 22.04 / 20.04 LTS

  3. Jak nainstalovat HTTP Git Server s Nginx na Ubuntu 18.04 LTS