Hvordan installere du Gitlab Server med Docker på Ubuntu 18.04 LTS

  1. Installation af Gitlab.
  2. Ændre SSH port
  3. Configuere Firewall
  4. Install Docker
  5. Installere programmer som skal bruges.
  6. Install Gitlab
  7. Run Gitlab
  8. Configure Gitlab
    1. Configure SMTP
    2. Gitlab profile
    3. Opret bruger navn.
    4. Tilføj SSH keys.
  9. Opret første project
  10. Manager af Gitlab containers
  11. Opgradere Gitlab

Gitlab CE eller Community Edition er et open source-program, der bruges som git server. At køre sin egen git server giver en del frihed, samtidig med at du giver en nem at bruge interface til dig og dine teammedlemmer.

Der er nogle hardware krav.

En VPS med 2 CPU cores og 8GB RAM. Den kan klare en del brugere. 

 

Step 1. – Installere programmer som skal bruges.

Til at starte med skal vi have nogle programmer installeret som Gitlab skal bruge.

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

Step 2. – Ændre SSH porten.

Du kan nu ændre SSH port fra 22 til 6622. Du kan vælge hvilken port du vil.

Step 3. – Konfigurer firewall

$ sudo ufw allow OpenSSH
$ sudo ufw allow 22

Step 4.0 – Installere Docker

For at installere Docker skal du installere docker pakken.

$ sudo apt install docker -y

Nu er docker installeret og du kan køre et testprogram som ligger på nettet klar til test.

$ docker run hello-world

Det skulle gerne give dette output.

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.

Step 4.1 – Tilføj docker til bruger gruppen.

$ sudo usermod -aG docker $USER

For at installere Gitlab fra gitlab starter du med docker.

Step 4.2 – Installere Docker Compose.

For at installere Docker compose skal du bruge curl som vist her.
Det vil installere docker-compose programmet.

$ 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
$ sudo chmod +x /usr/local/bin/docker-compose

Tilføj derefter Command Completion til 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

Step 5. Installere programmer som skal bruges.

$ sudo docker pull gitlab/gitlab-ee:latest

Den kommando tager nogle minutter til gennemføre. Den skal først hente hele pakken, og installere Gitlab på containeren.

Når den er færdig kan du checke om den har hentet hele pakken med.

$ sudo docker images

Vi skal nu lave en config fil til docker-compose. Det lyder svært, men det er det ikke.

$ nano docker-compose.yml

Indsæt denne tekst i filen. Det er vigtigt det er med samme formatering.

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'

Lad os se hvad det betyder.

  • image referere til hvor Gitlab images ligger på Dockerhub.
  • container_name Giver dig mulighed for at give din docker container et navn.
  • hostname Definere containerens interne hostnavn.
  • restart Her beskriver du hvordan genstart skal virke. Vi sætter den her til always som betyder at den automatisk genstarte.
  • environment supplies the variable GITLAB_OMNIBUS_CONFIG which allows you to enter any Gitlab configuration setting. In this case, we supplied the external URL that Gitlab is supposed to use.
  • volume Definere hvilken biblioteker som skal monteres på server for at gemme data. Disse biblioteker gemmer program data, log filer og  konfigurations filer. Værdien til venstre af ; er det lokale bibliotek og til højre er inden i contaneren.
  • publish Beskriver hvilken porte som er skal være public i containeren. Samt ranges af porte Gitlab skal bruge port 22(SSH),80(HTTP),443(HTTPS),587(SMTP-MSA). Disse porte er beskrevet under ports
    Hvis du vil have Gitlab til at bruge andre porte skal du angive det her.
    Du skal også huske at tilføje gitlab_rails[‘gitlab_shell_ssh_port’] = 3333 under GITLAB_OMNIBUS_CONFIG som vist.
  • external_url Beskriver under hvilken domain som Gitlab skal køre under. Vi har valgt https som automatisk vil installere Let’s Encrypt SSL for os.
  • Vi har også tilføjet nogle extra konfigurations for at konfigure Gitlab for at bruge gmail for at sende mails. Du kan bruge alle 3 parts mail systemer her.
    Læs mere Guide til SMTP service
$ docker-compose up -d

Du vil se noget tekst som dette.

Creating gitlab-howtoforge-tutorial ... done

Tryk nu ctrl+C for at afslutte.

Hvis du ikke lige fik ip adressen på din Gitlab docker har jeg et tip. Åben en ny shell brug docker ps som vist her.

$ sudo docker ps 
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
6fe9691a4198 gitlab/gitlab-ee "/assets/wrapper" About an hour ago Up About an hour (healthy) 22/tcp, 80/tcp, 443/tcp
$ sudo docker exec -it 6fe9691a4198 sh
# bash
$ apt update && apt install net-tools
[email protected]:/# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02
inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11830 errors:0 dropped:0 overruns:0 frame:0
TX packets:4553 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:17325372 (17.3 MB) TX bytes:1861032 (1.8 MB)

# exit
$ exit

Så har vi det info vi skal bruge. Vi kan se at ip adressen er 172.17.0.2 så åben en browser og skriv 172.17.0.2 i adresse feltet.

For at se log fra gitlab åben en log.

docker logs -f gitlab-howtoforge-tutorial

Step 6. Åben Gitlab web interface.

Step 7. Start Gitlab containeren.

For at starte skal du skrive.

$ sudo docker start 6fe9691a4198
6fe9691a4198

Hvis den giver container id tilbage er containeren startet.

Step 8. Configure Gitlab

For at oprette administrator delen skal du angive et password. Bruger navn du skal bruge efter du har oprettet passworded er root som login bruger.

Step 8.1 Konfigurere SMTP.

Så skal vi have enabled SMTP mail server.

Step 8.2 Konfigurere bruger.

Du bliver taget til dig profil settings. Tilføj dit navn email adresse osv.

Tryk på Update.

Nu skal du ændre dit bruger navn fra root til noget andet.

Ændre bruger navn til det du vil bruge. Og klik på update username Du skulle også enable Two-Factor for en sikkerhed skyld.

Step 8.3.1 Luk for nye brugere kan sign up.

Åben settings menuen og åben Sign-up restrictions. her skal du fjerne krys ved sign-up enabled box.

Step 8.4 Tilføj SSH nøgle.

For at tilføje en ssh nøgle til din konti skal du bruge kommandoen ssh-genkey.

$ ssh-keygen

kommanden er den samme på Linux og Mac OS.

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]-----+

Du kan nu se den nøgle du skal bruge.

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

Åben igen din profil og vælg accesss SSH 
Kopiere nu din ssh nogle og indsæt den som tekst i feltet. Og vælg Add Key for at afslutte.

Nu kan du oprette/commit til system uden af bruge password login.

Step 9. – Opret første project.

Nu er det tid til at oprette det første project. Click Create a project

Du føres til siden New project. Indtast projekt navn. Du kan ændre project slug til noget andet. Indtast en beskrivelse af projektet, hvis du vil, og ændre synligheden af projektet, som du ønsker. Du kan initialisere dit depot med en README-fil. Når du er færdig, skal du klikke på Create project.

Du vil blive ført til din depot side med kun en enkelt tom fil README.md.

Nu, hvor vores lager er live, lad os prøve at tilføje en changelog fra kommandolinjen.
Indtast følgende kommandoer på din computer for at oprette en CHANGELOG-fil og push den tilbage til dit arkiv. Sørg for, at du har Git installeret på din computer.

Klon depotet. Du kan klone enten ved hjælp af SSH eller HTTPS.

Clone med SSH.

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

Eller med https.

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

Nu prøver vi at rette i changelog filen, og opdateret det igen.

$ 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

Step 10. – Manage Gitlab Contaner.

For at se hvilken contaner som køre. Kør denne kommando.

$ sudo docker ps

For at stoppe en contaner som køre. Kør denne kommando.

$ sudo docker stop 6fe9691a4198

For at starte contaneren igen

$ sudo docker start 6fe9691a4198

For at fjerne contaneren fra maskinen kan du bruge denne kommando.

$ sudo docker rm 6fe9691a4198

Step 11. – Upgrade docker Gitlab.

For at opgradere Gitlab skal du fjerne den gamle version først. Og derefter installere den nye version som vist her.

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

Dine data bliver ikke slettet, under upgrade.

Author:

Jeg er en professionel system administrator og grundlægger af linuxboxen.dk Jeg er en ivrig Linux-elsker og open source-entusiast. Jeg bruger Ubuntu og tror på at dele viden. Bortset fra Linux, elsker musik og dyr. Jeg er en stor fan af Dire straits.

Skriv et svar