|
|
|
# Gitlab-runner
|
|
|
|
|
|
|
|
Gitlab-runner ajaa Gitlabin CI/CD-ketjun toimintoja ja palauttaa tulokset Gitlabiin. Tässä käydään läpi, kuinka runnerin saa pyörimään Linuxilla.
|
|
|
|
|
|
|
|
## Asennus
|
|
|
|
|
|
|
|
Runnerin voi asentaa esimerkiksi Googlen pilvipalveluihin Compute Engineen, tai testailun vuoksi omalle koneelle.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64 &&
|
|
|
|
sudo chmod +x /usr/local/bin/gitlab-runner &&
|
|
|
|
curl -sSL https://get.docker.com/ | sh &&
|
|
|
|
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash &&
|
|
|
|
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner &&
|
|
|
|
sudo gitlab-runner start &&
|
|
|
|
```
|
|
|
|
|
|
|
|
## Konfigurointi
|
|
|
|
|
|
|
|
```bash
|
|
|
|
sudo gitlab-runner register
|
|
|
|
```
|
|
|
|
|
|
|
|
Register kysyy tokenia, jonka voi hakea projektin Settings > CI/CD > Runners kautta. Kirjoitushetkellä ei löydy oikeuksia muokata ryhmän (Overflow) runnereita, joilla saataisiin kerralla runnerit jokaiseen projektiin, joten ne täytyy yksitellen lisätä jokaiseen projektiin missä niitä käytetään (back ja front alustavasti).
|
|
|
|
|
|
|
|
Runnerin kuvauksesi esim. Overflow Back-/Frontend Runner, ja tagiksi docker.
|
|
|
|
|
|
|
|
Prosessi kysyy lopussa, mikä valitaan executoriksi. Docker kattaa eniten, jolloin valitaan imagen defaultiksi alpine heti seuraavaan kysymykseen.
|
|
|
|
|
|
|
|
Runnerin kuvausta ja tageja voi muokata jälkikäteen myös samasta sijainnista, josta token löytyi.
|
|
|
|
|
|
|
|
Sudo oikeudet gitlab-runnerille:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
sudo usermod -aG docker gitlab-runner
|
|
|
|
nano /etc/sudoers
|
|
|
|
# Lisää User Privilege Specification kohtaan rootin alle
|
|
|
|
gitlab-runner ALL=(ALL) NOPASSWD: ALL
|
|
|
|
```
|
|
|
|
|
|
|
|
Dockerin ajaminen Dockerissa tuotti myös ongelmia, jotka voidaan kiertää muuttamalla runnerin asetustiedostoa:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
sudo nano /etc/gitlab-runner/config.toml
|
|
|
|
```
|
|
|
|
|
|
|
|
Tiedostossa muutetaan runners.docker alla privileged trueksi ja lisätään volumes kohtaan Docker daemon:
|
|
|
|
|
|
|
|
```toml
|
|
|
|
[runners.docker]
|
|
|
|
privileged = true
|
|
|
|
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
|
|
|
|
``` |