Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:gitlab_centos_7_-_runner

Gitlab CentOS 7 - Runner

Gitlab ist ein, in der Community Edition unter einer MIT-Lizenz zur Verfügung gestelltes System, zur Verwaltung von Git-Repositorys im Browser, was den unentgeltlichen Betrieb auf einem eigenen Server ermöglicht.

Gitlab CI (Continous Integration) bedeutet vereinfacht gesagt, dass nach jeder Änderung am Source Code eines Projektes ein Script ausgeführt wird. Das Gitlab CI (Continous Integration)-Script wird in den meisten Fällen über eine Versionsverwaltung angestoßen. Dateien welche dieses Script erstellt, können später als sogenannte „Build Artifacts“ genutzt werden.

Das Konzept von Gitlab CI (Continous Integration) basiert auf so genannten „Runnern“, welche die eigentlichen „Build-Scripts“ ausführen. Gitlab CI (Continous Integration) ist nur für das Orchestrieren dieser „Runner“ und dem Zusammentragen von Resultaten und „Build-Artifacts“ zuständig. Dadurch haben die Gitlab CI (Continous Integration)-Scripte kein Zugriff auf Gitlab selbst.

Die „Runner“ melden sich alle paar Sekunden über HTTPS bei Gitlab und fragen nach, ob es für sie einen Job gibt, Gitlab CI (Continous Integration) kann die „Runner“ von sich aus nicht kontaktieren. Dies erleichtert die Einrichtung von neuen „Runnern“ erheblich, einzige Voraussetzung ist, dass sich der „Runner“ per HTTPS mit Gitlab verbinden kann.

Gitlab gibt es ebenfalls in einer kostenpflichtigen Enterprise Edition

Ab hier werden root-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um der Benutzer root zu werden, geben Sie bitte nachfolgenden Befehl ein:

$ su -
Password: 

Voraussetzungen

Als Voraussetzung für die hier, nachfolgend dargestellte Installation von Gitlab sind folgende Komponenten erforderlich:

Nachfolgende rpm-Pakete sind als Abhängigkeit erforderlich und werden ebenfalls benötigt:

  • curl - ist im base-Repository von CentOS enthalten und normalerweise bereits installiert

Vorbereitung

Die Installation kann auf zwei Wegen erfolgen

  1. Manuelle Auswahl und Installation des herunterzuladenden Pakets unter nachfolgendem externen Link:
  2. Herunterladen eines für CentOS in der Version 7.x vorbereiteten Installations-Skripts, mit direkter Ausführung in einem Befehl (Nachfolgend der Speicherort des Installations-Skripts)
    1. Es wird automatisch eines neues Repository unter /etc/yum.repos.d mit dem Namen runner_gitlab-runner.repo erstellt
    2. Die automatische Installation, erfolgt dann aus diesem neu eingebundenen Repository - runner_gitlab-runner.repo

:!: WICHTIG - Zur Installation mit der Variante 2 wird eine Internet-Verbindung des Servers benötigt!

Installation

Nachfolgend soll eine Installation von Gitlab - Runner via Herunterladen eines für CentOS in der Version 7.x vorbereiteten Installations-Skripts, mit direkter Ausführung in einem Befehl - auch Gitlab - Runner-Installation genannt, durchgeführt werden.

Nachfolgende Schritte, werden durch das Skript script.rpm.sh zur Installation von Gitlab - Runner durchgeführt:

  1. Ermittlung des Betriebssystems
  2. Überprüfung der Befehl curl vorhanden ist (ggf. unnötig, da curl schon beim Befehlsaufruf verwendet wird), ggf. wird curl installiert
  3. Ermittlung des Host-Namens
  4. Einrichten eines neuen Repositorys unter /etc/yum.repos.d/runner_gitlab-runner.repo
  5. Installation des rpm-Paktes pygpgme, welches zur Überprüfung von GPG-Signaturen benötigt wird
  6. Installation des rpm-Paktes yum-utils, welches zur Verwaltung von rpm-Paketen benötigt wird
  7. Erstellen von cache-Informationen für das neu Installierte Repository unter etc/yum.repos.d/gitlab_gitlab-ce.repo

Nachfolgender Befehl, kann dann zur Installation von Gitlab - Runner ausgeführt werden:

# curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash

Ausführung:

# curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  6435    0  6435    0     0   4394      0 --:--:--  0:00:01 --:--:--  4401
Detected operating system as centos/7.
Checking for curl...
Detected curl...
Downloading repository file: https://packages.gitlab.com/install/repositories/runner/gitlab-runner
/config_file.repo?os=centos&dist=7&source=script
done.
Installing pygpgme to verify GPG signatures...
Loaded plugins: changelog, priorities
runner_gitlab-runner-source/signature                                              |  836 B  00:00:00     
Retrieving key from https://packages.gitlab.com/runner/gitlab-runner/gpgkey
Importing GPG key 0xE15E78F4:
 Userid     : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
 Fingerprint: 1a4c 919d b987 d435 9396 38b9 1421 9a96 e15e 78f4
 From       : https://packages.gitlab.com/runner/gitlab-runner/gpgkey
runner_gitlab-runner-source/signature                                              |  951 B  00:00:00 !!! 
runner_gitlab-runner-source/primary                                                |  175 B  00:00:01     
115 packages excluded due to repository priority protections
Package pygpgme-0.3-9.el7.x86_64 already installed and latest version
Nothing to do
Installing yum-utils...
Loaded plugins: changelog, priorities
115 packages excluded due to repository priority protections
Package yum-utils-1.1.31-42.el7.noarch already installed and latest version
Nothing to do
Generating yum cache for runner_gitlab-runner...
Importing GPG key 0xE15E78F4:
 Userid     : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
 Fingerprint: 1a4c 919d b987 d435 9396 38b9 1421 9a96 e15e 78f4
 From       : https://packages.gitlab.com/runner/gitlab-runner/gpgkey

The repository is setup! You can now install packages.

Zur Installation von Gitlab - Runner wird nachfolgendes Paket benötigt:

  • gitlab-runner - ist im gitlab_gitlab-runner-Repository des Drittanbieters Gitlab enthalten

Mit nachfolgendem Befehl, wird das Pakete gitlab-runner installiert:

# yum install gitlab-runner
Loaded plugins: changelog, priorities
115 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package gitlab-runner.x86_64 0:10.4.0-1 will be installed
--> Processing Dependency: git for package: gitlab-runner-10.4.0-1.x86_64
--> Running transaction check
---> Package git.x86_64 0:1.8.3.1-12.el7_4 will be installed
--> Processing Dependency: perl-Git = 1.8.3.1-12.el7_4 for package: git-1.8.3.1-12.el7_4.x86_64
--> Processing Dependency: rsync for package: git-1.8.3.1-12.el7_4.x86_64
--> Processing Dependency: perl(Term::ReadKey) for package: git-1.8.3.1-12.el7_4.x86_64
--> Processing Dependency: perl(Git) for package: git-1.8.3.1-12.el7_4.x86_64
--> Processing Dependency: perl(Error) for package: git-1.8.3.1-12.el7_4.x86_64
--> Processing Dependency: libgnome-keyring.so.0()(64bit) for package: git-1.8.3.1-12.el7_4.x86_64
--> Running transaction check
---> Package libgnome-keyring.x86_64 0:3.12.0-1.el7 will be installed
---> Package perl-Error.noarch 1:0.17020-2.el7 will be installed
---> Package perl-Git.noarch 0:1.8.3.1-12.el7_4 will be installed
---> Package perl-TermReadKey.x86_64 0:2.30-20.el7 will be installed
---> Package rsync.x86_64 0:3.0.9-18.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package            Arch     Version               Repository              Size
================================================================================
Installing:
 gitlab-runner      x86_64   10.4.0-1              runner_gitlab-runner    25 M
Installing for dependencies:
 git                x86_64   1.8.3.1-12.el7_4      updates                4.4 M
 libgnome-keyring   x86_64   3.12.0-1.el7          base                   109 k
 perl-Error         noarch   1:0.17020-2.el7       base                    32 k
 perl-Git           noarch   1.8.3.1-12.el7_4      updates                 53 k
 perl-TermReadKey   x86_64   2.30-20.el7           base                    31 k
 rsync              x86_64   3.0.9-18.el7          base                   360 k

Transaction Summary
================================================================================
Install  1 Package (+6 Dependent packages)

Total download size: 30 M
Installed size: 70 M
Is this ok [y/d/N]: y
Downloading packages:
(1/7): perl-Git-1.8.3.1-12.el7_4.noarch.rpm                |  53 kB   00:00     
(2/7): git-1.8.3.1-12.el7_4.x86_64.rpm                     | 4.4 MB   00:00     
(3/7): perl-Error-0.17020-2.el7.noarch.rpm                 |  32 kB   00:00     
(4/7): libgnome-keyring-3.12.0-1.el7.x86_64.rpm            | 109 kB   00:00     
(5/7): perl-TermReadKey-2.30-20.el7.x86_64.rpm             |  31 kB   00:00     
(6/7): rsync-3.0.9-18.el7.x86_64.rpm                       | 360 kB   00:00     
(7/7): gitlab-runner-10.4.0-1.x86_64.rpm                   |  25 MB   00:20     
--------------------------------------------------------------------------------
Total                                              1.5 MB/s |  30 MB  00:20     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 1:perl-Error-0.17020-2.el7.noarch                            1/7 
  Installing : perl-TermReadKey-2.30-20.el7.x86_64                          2/7 
  Installing : libgnome-keyring-3.12.0-1.el7.x86_64                         3/7 
  Installing : rsync-3.0.9-18.el7.x86_64                                    4/7 
  Installing : perl-Git-1.8.3.1-12.el7_4.noarch                             5/7 
  Installing : git-1.8.3.1-12.el7_4.x86_64                                  6/7 
  Installing : gitlab-runner-10.4.0-1.x86_64                                7/7 
GitLab Runner: creating gitlab-runner...
gitlab-runner: Service is not running.
gitlab-ci-multi-runner: Service is not running.
  Verifying  : rsync-3.0.9-18.el7.x86_64                                    1/7 
  Verifying  : libgnome-keyring-3.12.0-1.el7.x86_64                         2/7 
  Verifying  : perl-Git-1.8.3.1-12.el7_4.noarch                             3/7 
  Verifying  : perl-TermReadKey-2.30-20.el7.x86_64                          4/7 
  Verifying  : 1:perl-Error-0.17020-2.el7.noarch                            5/7 
  Verifying  : gitlab-runner-10.4.0-1.x86_64                                6/7 
  Verifying  : git-1.8.3.1-12.el7_4.x86_64                                  7/7 

Installed:
  gitlab-runner.x86_64 0:10.4.0-1                                               

Dependency Installed:
  git.x86_64 0:1.8.3.1-12.el7_4          libgnome-keyring.x86_64 0:3.12.0-1.el7 
  perl-Error.noarch 1:0.17020-2.el7      perl-Git.noarch 0:1.8.3.1-12.el7_4     
  perl-TermReadKey.x86_64 0:2.30-20.el7  rsync.x86_64 0:3.0.9-18.el7            

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket gitlab-runner installiert wurden.

# rpm -qil gitlab-runner
Name        : gitlab-runner
Version     : 10.4.0
Release     : 1
Architecture: x86_64
Install Date: Fri 26 Jan 2018 08:41:36 AM CET
Group       : default
Size        : 49056140
License     : MIT
Signature   : (none)
Source RPM  : gitlab-runner-10.4.0-1.src.rpm
Build Date  : Mon 22 Jan 2018 10:56:44 AM CET
Build Host  : runner-fa6cab46-project-250833-concurrent-0
Relocations : / 
Packager    : GitLab Inc. <support@gitlab.com>
Vendor      : GitLab Inc.
URL         : https://gitlab.com/gitlab-org/gitlab-runner
Summary     : GitLab Runner
Description :
GitLab Runner
/usr/bin/gitlab-ci-multi-runner
/usr/bin/gitlab-runner
/usr/share/gitlab-runner/clear-docker-cache
/usr/share/gitlab-runner/post-install
/usr/share/gitlab-runner/pre-remove

Folgender Benutzer wurde ebenfalls angelegt, was mit folgendem Befehl überprüft werden kann:

# cat /etc/passwd | grep git
gitlab-www:x:400:400::/var/opt/gitlab/nginx:/bin/false
git:x:399:399::/var/opt/gitlab:/bin/sh
gitlab-redis:x:398:398::/var/opt/gitlab/redis:/bin/false
gitlab-psql:x:397:397::/var/opt/gitlab/postgresql:/bin/sh
gitlab-prometheus:x:392:390::/var/opt/gitlab/prometheus:/bin/sh
gitlab-runner:x:391:388:GitLab Runner:/home/gitlab-runner:/bin/bash
Desweiteren wurden auch folgende Gruppen angelegt, was mit folgendem Befehl überprüft werden kann:
# cat /etc/group | grep git
gitlab-www:x:400:
git:x:399:
gitlab-redis:x:398:
gitlab-psql:x:397:
gitlab-prometheus:x:390:
gitlab-runner:x:388:

Um das Starten von Gitlab - Runner auch nach einem System-(re)-start auch in Zukunft dauerhaft zu realisieren, wurden nachfolgende systmed-Services während der Installation angelegt, was mit nachfolgendem Befehl überprüft werden kann:

# systemctl list-unit-files -t service | grep git
gitlab-runner.service                         enabled 
gitlab-runsvdir.service                       enabled

Nachfolgende Dienste sind nun gestartet, welche mit nachfolgenden Befehlen abgefragt werden können:

# systemctl status gitlab-runner.service
● gitlab-runner.service - GitLab Runner
   Loaded: loaded (/etc/systemd/system/gitlab-runner.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2018-01-26 08:41:37 CET; 6min ago
 Main PID: 4849 (gitlab-runner)
   CGroup: /system.slice/gitlab-runner.service
           └─4849 /usr/bin/gitlab-runner run --working-directory /home/gitlab...

Jan 26 08:41:37 serverC8.tachtler.net gitlab-runner[4849]: time="2018-01...
Jan 26 08:41:37 serverC8.tachtler.net gitlab-runner[4849]: time="2018-01...
Jan 26 08:41:37 serverC8.tachtler.net gitlab-runner[4849]: time="2018-01...
Jan 26 08:41:37 serverC8.tachtler.net gitlab-runner[4849]: time="2018-01...
Jan 26 08:41:37 serverC8.tachtler.net gitlab-runner[4849]: time="2018-01...
Jan 26 08:41:37 serverC8.tachtler.net gitlab-runner[4849]: time="2018-01...
Jan 26 08:41:37 serverC8.tachtler.net gitlab-runner[4849]: time="2018-01...
Jan 26 08:41:37 serverC8.tachtler.net gitlab-runner[4849]: time="2018-01...
Jan 26 08:41:37 serverC8.tachtler.net gitlab-runner[4849]: time="2018-01...
Jan 26 08:41:37 serverC8.tachtler.net gitlab-runner[4849]: time="2018-01...
Hint: Some lines were ellipsized, use -l to show in full.

bzw.

# netstat -tulpen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address      Foreign Address State    User    Inode      PID/Program name    
tcp        0      0 127.0.0.1:9100     0.0.0.0:*       LISTEN   392     24593087   2248/node_exporter  
tcp        0      0 127.0.0.1:9229     0.0.0.0:*       LISTEN   399     24592336   2163/gitlab-workhor 
tcp        0      0 127.0.0.1:80       0.0.0.0:*       LISTEN   399     24593989   973/unicorn worker[ 
tcp        0      0 127.0.0.1:91       0.0.0.0:*       LISTEN   399     24593076   2230/ruby           
tcp        0      0 0.0.0.0:80         0.0.0.0:*       LISTEN   0       24593447   2240/nginx: master  
tcp        0      0 127.0.0.1:80       0.0.0.0:*       LISTEN   399     24594593   2278/sidekiq 5.0.5  
tcp        0      0 127.0.0.1:9236     0.0.0.0:*       LISTEN   399     24592995   2177/gitaly         
tcp        0      0 10.7.0.200:22      0.0.0.0:*       LISTEN   0       16875      1045/sshd           
tcp        0      0 127.0.0.1:25       0.0.0.0:*       LISTEN   0       17078      1247/master         
tcp        0      0 0.0.0.0:443        0.0.0.0:*       LISTEN   0       24593448   2240/nginx: master  
tcp        0      0 0.0.0.0:8060       0.0.0.0:*       LISTEN   0       24593449   2240/nginx: master  
tcp        0      0 127.0.0.1:9121     0.0.0.0:*       LISTEN   398     24593502   2271/redis_exporter 
tcp        0      0 127.0.0.1:9090     0.0.0.0:*       LISTEN   392     24592367   2193/prometheus     
tcp        0      0 127.0.0.1:9187     0.0.0.0:*       LISTEN   397     24593112   2259/postgres_expor          
udp        0      0 10.7.0.200:123     0.0.0.0:*                38      16521      786/ntpd            
udp        0      0 127.0.0.1:123      0.0.0.0:*                0       15151      786/ntpd             

Konfiguration: Benutzer: gitlab-runner

Standardmäßig wird ein Benutzer - gitlab-runner im Dateisystem angelegt und hat sein home-Verzeichnis unter - /home/gitlab-runner, wie nachfolgender Befehl zeigt:

# cat /etc/passwd | grep gitlab-runner
gitlab-runner:x:391:388:GitLab Runner:/home/gitlab-runner:/bin/bash

Dies soll nun mit nachfolgendem Befehl geändert werden, da alle andern Komponenten von Gitlab unter /opt/gitlab liegen.

# usermod -m -d /var/opt/gitlab/gitlab-runner gitlab-runner

:!: HINWEIS - Die Option -m kopiert den Inahlt des alten Verzeichnisses in das neue Verzeichnis

Nachfolgender Befehle können zur Überprüfung verwendet werden, ob das Verschieben des home-Verzeichnisses erfolgreich war:

# cat /etc/passwd | grep gitlab-runner
gitlab-runner:x:391:388:GitLab Runner:/var/opt/gitlab/gitlab-runner:/bin/bash
und
# ls -la /var/opt/gitlab/gitlab-runner/
total 16
drwx------   5 gitlab-runner gitlab-runner   97 Jan 26 14:08 .
drwxr-xr-x. 20 root          root          4096 Jan 28 07:35 ..
-rw-r--r--   1 gitlab-runner gitlab-runner   18 Sep  6 18:25 .bash_logout
-rw-r--r--   1 gitlab-runner gitlab-runner  193 Sep  6 18:25 .bash_profile
-rw-r--r--   1 gitlab-runner gitlab-runner  231 Sep  6 18:25 .bashrc
drwxrw----   3 gitlab-runner gitlab-runner   18 Jan 26 13:06 .pki

:!: WICHTIG - Nachfolgende Änderungen sind im systemd-Startskript erforderlich, damit die Änderungen wirksam werden, da das home-Verzeichnis in den systemd-Startscript Paremetern enthalten ist!

Eine Abfrage des laufenden Prozesses, zeigt die Startparameter deutlich und kann mit nachfolgendem Befehl durchgeführt werden:

# ps auxwf | grep gitlab-runner
root      8367  0.0  0.0 112660   948 pts/0    S+   08:10   0:00             \_ grep --color=auto gitlab-runner
root      1025  0.5  0.1  59108 15648 ?        Ssl  Jan27   7:05 /usr/bin/gitlab-runner run --working-directory
/home/gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlab-runner --syslog 
--user gitlab-runner

Zuerst muss der Dienst/Daemon gitlab-runner.service mit nachfolgendem Befehl gestoppt werden:

# systemctl stop gitlab-runner.service

Anschließend wird der gitlab-runner deinstalliert, was mit nachfolgendem Befehl durchgeführt werden kann:

# gitlab-runner uninstall

Die Änderung des gitlab-runner auf das neue home-Verzeichnis, kann mit nachfolgendem Befehl durchgeführt werden, in dem der gitlab-runner wieder installiert wird (Die Angabe des Benutzers ist zwingend erforderlich):

# gitlab-runner install --working-directory /var/opt/gitlab/gitlab-runner --user gitlab-runner

Zur Sicherheit, laden wird die systemd Einstellungen erneut, mit nachfolgendem Befehl:

# systemctl daemon-reload

Abschließend kann der Dienst/Daemon gitlab-runner.service mit nachfolgendem Befehl wieder gestartet werden:

# systemctl start gitlab-runner.service

Eine Abfrage des nun laufenden Prozesses, zeigt die neuen Startparameter deutlich und kann mit nachfolgendem Befehl durchgeführt werden:

# ps auxwf | grep gitlab-runner
root      9587  0.0  0.0 112660   948 pts/0    S+   08:14   0:00             \_ grep --color=auto gitlab-runner
root      9546  3.2  0.1  56996 15084 ?        Ssl  08:14   0:00 /usr/bin/gitlab-runner run --working-directory 
/var/opt/gitlab/gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlab-runner --syslog 
--user gitlab-runner

Nahfolgender Befehl zeigt das geänderte systend-Startskript für den Dienst/Daemon gitlab-runner.service:

# cat /etc/systemd/system/gitlab-runner.service
[Unit]
Description=GitLab Runner
After=syslog.target network.target
ConditionFileIsExecutable=/usr/bin/gitlab-runner
 
[Service]
StartLimitInterval=5
StartLimitBurst=10
ExecStart=/usr/bin/gitlab-runner "run" "--working-directory" "/var/opt/gitlab/gitlab-runner" "--config"
"/etc/gitlab-runner/config.toml" "--service" "gitlab-runner" "--syslog" "--user" "gitlab-runner"
 
 
 
 
 
Restart=always
RestartSec=120
 
[Install]
WantedBy=multi-user.target

Konfiguration: Runner registrieren

:!: WICHTIG - Der neu installierte „Runner“ muss nun in Gitlab registriert werden.

Runner-Token

Jedes Projekt hat hierzu ein eindeutiges „Runner-Token“, welches im Webinterface unter

  • Project [Name des Projekts/GIT-Repositories] | Settings | CI / CD | Runners Setting

wie auf nachfolgender Bildschirmkopie, eingesehen werden kann:

Project - Settings - CI / CD - Runners Setting

Runner registrieren

Zur Registrierung einer „Runners“, sind nachfolgende Befehle auszuführen:

Start des Registrierungsprozesses mit nachfolgendem Befehl:

# gitlab-runner register

Geben Sie Ihre GitLab-Instanz-URL ein:

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
https://serverc8.tachtler.net

Geben Sie den „Runner-Token“ ein, welcher auf der Gitlab-Web-Anwednung unter Punkt 3. (Registrierungstoken) angezeigt wird, um den „Runner“ zu registrieren:

Please enter the gitlab-ci token for this runner
xxxx-xxxxxxxxxxxxxxx

Geben Sie eine Beschreibung für den „Runner“ ein. (Diese kann später in der Benutzeroberfläche von Gitlab geändert werden):

Please enter the gitlab-ci description for this runner
[serverC8.tachtler.net]: test-runner-shell

Geben Sie die mit dem „Runner“ verknüpften Tags ein. (Diese können später in der Benutzeroberfläche von Gitlab geändert werden):

Please enter the gitlab-ci tags for this runner (comma separated):

Wählen Sie, ob der Runner Jobs ohne Tags übernehmen soll. (Dies kann später in der Benutzeroberfläche von Gitlab geändert werden) - (Standardeinstellung ist false (Nein)):

Whether to run untagged jobs [true/false]:
[false]: true

Wählen Sie, ob der „Runner“ für das aktuelle Projekt gesperrt werden soll. (Dies kann später in der Benutzeroberfläche von Gitlab geändert werden). Dies ist nützlich, wenn der „Runner“ spezifisch für dieses Projekt definiert ist (Standardeinstellung ist true (Ja)):

Whether to lock Runner to current project [true/false]:
[true]: true

Geben Sie den "Runner Executor" (ausführende Umgebung) ein:

Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
shell

:!: HINWEIS - Der Shell-Executor ist ein einfacher Executor, mit dem Sie Builds lokal auf der Maschine ausführen können, auf der der Runner installiert ist. Es unterstützt alle Systeme, auf denen der „Runner“ installiert werden kann.

# gitlab-runner register
Running in system-mode.                            
 
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
https://servceC8.tachtler.net
Please enter the gitlab-ci token for this runner:
xxxx-xxxxxxxxxxxxxxx
Please enter the gitlab-ci description for this runner:
[vml70200.idmz.tachtler.net]: test-runner-shell
Please enter the gitlab-ci tags for this runner (comma separated):
 
Whether to lock the Runner to current project [true/false]:
[true]: true
Registering runner... succeeded                     runner=xxxx-xxx
Please enter the executor: shell, virtualbox, docker+machine, docker-ssh+machine, docker, docker-ssh, kubernetes, parallels, ssh:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

Anschließend sollte der „Runner“ im Projekt verfügbar sein, wie nachfolgende Bildschirmkopie zeigt:

Project - Settings - CI / CD - Runners Setting - Runners activated

Ein [Klick mit der linken Maustaste] auf die [Nummer] des „Aktivierten Runners“, zeigt die Parameter des „Runners“, wie nachfolgende Bildschirmkopie zeigt:

Project - Settings - CI / CD - Runners Setting - Runners activated - Details

Runner: .gitlab-ci.yml

Nachdem der „Runner“ eingerichtet und registriert ist, muss eine Konfigurationsdatei für den „Runner“ mit dem Namen

  • .gitlab-ci.yml

im Hauptverzeichnis des Projektes erstellt werden.

In Nachfolgendem Beispiel soll nur

  1. eine Datei erstellt werden und
  2. getestet werden, ob diese vorhanden ist und
  3. anschließend wieder gelöscht werden

.job_test:
  script: &test_script
  - touch foo
  - test foo
  - rm -f foo
 
job_test: 
  stage: test
  script: *test_script

Nachfolgendes Beispiel könnte zur Erstellung einer Java *.war-Datei (Web Application Archiv) genutzt werden:

stages:
 - build
 - test
.job_war_build:
  script: &war_build
  - "sh  ${CI_PROJECT_DIR}/web/WEB-INF/script/war_build_homepage.sh"
.job_war_test:
  script: &war_test
  - "sh  ${CI_PROJECT_DIR}/web/WEB-INF/script/war_test_homepage.sh"
job_war_build:
  stage: build
  script: *war_build
job_war_test:
  stage: test
  script: *war_test

:!: HINWEIS - Siehe auch den internen Link: Gitlab CentOS 7 - CI / CD

Runner: Fehlschlag

Falls die Ausführung eines „Runners“ fehlschlägt, wird zusätzlich zur Protokollierung innerhalb von Gitlab, auch eine E-Mail mit in etwa nachfolgendem Inhalt generiert:

Your pipeline has failed.

Project: homepage ( https://serverC8.tachtler.net/klaus/homepage )
Branch: development ( https://serverC8.tachtler.net/klaus/homepage/commits/development )

Commit: 3f873488 ( https://serverC8.tachtler.net/klaus/homepage/commit/3f8734884f6cb4bab546ab885852fde
d60163433 )
Commit Message: Datei .gitlab-ci.yml zur Verwendung mit GitLab ...
Commit Author: Klaus Tachtler ( https://serverC8.tachtler.net/klaus )

Pipeline #1 ( https://serverC8.tachtler.net/klaus/homepage/pipelines/1 ) triggered by Klaus Tachtler 
(https://serverC8.tachtler.net/klaus )
had 0 failed builds.


---
You're receiving this email because of your account on serverC8.tachtler.net.

Runner: Erfolgreich ausgeführt

Falle die Ausführung eines „Runners“ erfolgreich beendet wird, kann das Ergebnis wie folgt eingesehen werden.

Dazu muss innerhalb der Gitlab-Web-Anwendung nachfolgender Anzeige

  • Project [Name des Projekts/GIT-Repositories] | CI / CD | Pipelines

aufgerufen werden, wie nachfolgende Bildschirmkopie zeigt:

Project - CI / CD - Pipelines

Nach einem [Klick mit der linken Maustaste] auf [absolviert], erscheint eine detailliertere Anzeige des erfolgreich Beendeten „Runners“, wie nachfolgende Bildschirmkopie darstellt:

Project - CI / CD - Pipelines - Details

Ein Abschließendes [klicken mit der linken Maustaste] auf hier [✔ job_test], bringt die exakten Details des ausgeführten „Runners“ zum Vorschein, wie ebenfalls nachfolgende Bildschirmkopie zeigt:

Project - CI / CD - Pipelines - Details - Jobdetails

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
tachtler/gitlab_centos_7_-_runner.txt · Zuletzt geändert: 2018/02/02 07:23 von klaus