Inhaltsverzeichnis
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
Beschreibung | Externer Link |
---|---|
Homepage | https://gitlab.com/ |
Dokumentation | https://about.gitlab.com/documentation/ |
Omnibus Doku. | https://docs.gitlab.com/omnibus/ |
Installation | https://about.gitlab.com/downloads/ |
Versionsvergleich | https://about.gitlab.com/features/#compare |
Gitlab-Runner | https://docs.gitlab.com/runner/install/ |
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:
-
- Siehe auch den internen Link: GitLab CentOS 7
Nachfolgende rpm
-Pakete sind als Abhängigkeit erforderlich und werden ebenfalls benötigt:
Vorbereitung
Die Installation kann auf zwei Wegen erfolgen
- Manuelle Auswahl und Installation des herunterzuladenden Pakets unter nachfolgendem externen Link:
- 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)
- Es wird automatisch eines neues Repository unter
/etc/yum.repos.d
mit dem Namenrunner_gitlab-runner.repo
erstellt - 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:
- Ermittlung des Betriebssystems
- Überprüfung der Befehl
curl
vorhanden ist (ggf. unnötig, dacurl
schon beim Befehlsaufruf verwendet wird), ggf. wirdcurl
installiert - Ermittlung des Host-Namens
- Einrichten eines neuen Repositorys unter
/etc/yum.repos.d/runner_gitlab-runner.repo
- Installation des
rpm
-Paktespygpgme
, welches zur Überprüfung von GPG-Signaturen benötigt wird - Installation des
rpm
-Paktesyum-utils
, welches zur Verwaltung vonrpm
-Paketen benötigt wird - Erstellen von
cache
-Informationen für das neu Installierte Repository unteretc/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:
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:
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:
Ein [Klick mit der linken Maustaste] auf die [Nummer] des „Aktivierten Runners“, zeigt die Parameter des „Runners“, wie nachfolgende Bildschirmkopie zeigt:
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
- eine Datei erstellt werden und
- getestet werden, ob diese vorhanden ist und
- 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:
Nach einem [Klick mit der linken Maustaste] auf [absolviert], erscheint eine detailliertere Anzeige des erfolgreich Beendeten „Runners“, wie nachfolgende Bildschirmkopie darstellt:
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: