Article in English can be found on dev.to/arxeiss/gitlab-runner-on-raspberry-pi-2p7h
Instalaci Raspberry Pi OS nejspíše všichni zvládnou. Není to nic složitého, ale pro nováčky to raději popíšu. Stačí si na stránkách raspberrypi.com/software stáhnout Raspberry Pi Imager. Po spuštění vybrat doporučenou variantu operačního systému, zvolit cílovou SD kartu a spustit zápis. Poté vložit kartu do Raspberry a připojit napájení. Po naběhnutí vyskočí poinstalační průvodce, který dovolí změnit heslo, připojit se k WiFi a provést aktualizaci. Vše doporučuji udělat.
Instalace Dockeru není nutná, pokud se využije pipeline bez image
parametru. Podle toho se i dále vybere executor
při registraci runneru. Jako například shell nebo ssh apod.
Instalace Dockeru a gitu
Docker bude s největší pravděpodobností potřeba, git je nezbytností. Naštěstí git by měl být již předinstalován, takže stačí spusti git --version
a ověřit si, že vše funguje. Přesto, že instalace přes základní balíčkovací nástroj apt
je preferovaná, pro Raspberry nefunguje a je nutné použít Convenience script. Ten lze stáhnout a spustit pomocí příkazu níže. Protože Docker vyžaduje root práva, je vhodné přidat aktuálního uživatele do docker skupiny, opět pomocí příkazu níže.
# Stáhne convenience script a spustí instalaci
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Přidání aktuálního uživatele do docker skupiny práv
sudo groupadd docker # Nejspíše vrátí chybu, že skupina existuje
sudo usermod -aG docker ${USER}
groups ${USER} # Vypíše všechny skupiny, do kterých uživatel patří
Po restartu je možné otestovat, že Docker funguje pomocí příkazu docker run hello-world
. Ten stáhne a spustí hello-world image, který jen vypíše na obrazovku text. Pro ověření ale stačí.
Instalace Gitlab runneru
Gitlab runner se instaluje pomocí skriptu, podobě jako Docker. Instalační skript ovšem skončí chybou, že daná distribuce není podporována. Raspberry Pi OS sice vychází z distribuce Debian, má ale vlastní označení. Proto je potřeba přepsat některé vstupní proměnné skriptu.
# Vypíše aktuální verzi systému
cat /etc/os-release
# Proměnnou os a dist upravit podle výpisu z příkazu výše
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo os=debian dist=bullseye bash
# Nyní lze runner nainstalovat
sudo apt install gitlab-runner
Registrace Gitlab runneru
Posledním krokem je registrace runneru. Jedna instalace dokáže obsluhovat klidně více runnerů pro různé repozitáře či celé skupiny projektů. Prvním krokem je zkopírování registračního tokenu v nastavení CI/CD skupiny nebo projektu. Výhodné taky může být zakázání sdílených runnerů.
Pro registraci stačí spustit příkaz sudo gitlab-runner register
. Ten se zeptá na několik parametrů a při dotazu na vybrání executora zadat docker
. Toto platí ve většině případů.
Problém s vlastním Docker image
Použití vlastních Docker image může být na runneru na Raspberry Pi problematické. Většina běžných PC obsahuje procesor s architekturou amd64 zatímco Raspberry používá ARM procesory. Takže výsledný Docker image bude vytvořen pro amd64 a na Raspberry nepojede. Je proto potřeba image buildit přímo na Rapsberry, nebo použít rozšíření buildx
. Jak provést build pro více platforem je možné okoukat například v mém repozitáři Docker FTP Deployer.
Vlastní zkušenosti s Raspberry Pi a Gitlab či jiným runnerem můžete sdílet v komentářích.
K tomuto článku již není možné přidávat další komentáře
Komentáře
Narazil jsem nejdřív na anglickou verzi článku a měl jsem fakt radost když jsem našel link na českou verzi . Gitlab runner běží. Díky moc