2021年11月24日水曜日

RaspberryPi4 に gitlab-runner をインストールする方法

RaspberryPi4 に gitlab-runner をインストールする方法

概要

今回は shell-executor として登録します
基本は ds64 モードで勧めていますが aarch64 でもインストールできます

環境

  • RaspberryPi4 8GRAM
  • RaspberryPiOS 5.10.17 armv7l

ds64-shell の起動

作業は 64bit 環境で行います

  • ds64-shell

curl, wget のインストール

  • sudo apt -y install curl wget

証明書系のツールインストール

libgnutls30 もインストールします
これがないと git clone 時にエラーになります

  • sudo apt -y install apt-transport-https ca-certificates libgnutls30

gitlab-runner のインストール

Gitlab の公式のリポジトリからインストールします
ds64 環境ではない 64bit 環境 (aarch64) ではこの手順から実行します

  • curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
  • sudo apt-get install gitlab-runner
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  docker-engine
The following NEW packages will be installed:
  gitlab-runner
0 upgraded, 1 newly installed, 0 to remove and 90 not upgraded.
Need to get 437 MB of archives.
After this operation, 476 MB of additional disk space will be used.
Get:1 https://packages.gitlab.com/runner/gitlab-runner/debian buster/main arm64 gitlab-runner arm64 14.5.0 [437 MB]
Fetched 437 MB in 2min 10s (3,375 kB/s)                                                                                                     
Selecting previously unselected package gitlab-runner.
(Reading database ... 38144 files and directories currently installed.)
Preparing to unpack .../gitlab-runner_14.5.0_arm64.deb ...
Unpacking gitlab-runner (14.5.0) ...
Setting up gitlab-runner (14.5.0) ...
GitLab Runner: creating gitlab-runner...
Home directory skeleton not used
Runtime platform                                    arch=arm64 os=linux pid=2632 revision=f0a95a76 version=14.5.0
gitlab-runner: the service is not installed
Runtime platform                                    arch=arm64 os=linux pid=2643 revision=f0a95a76 version=14.5.0
gitlab-ci-multi-runner: the service is not installed
Runtime platform                                    arch=arm64 os=linux pid=2673 revision=f0a95a76 version=14.5.0
Runtime platform                                    arch=arm64 os=linux pid=2721 revision=f0a95a76 version=14.5.0
INFO: Docker installation not found, skipping clear-docker-cache

runner の登録

Gitlab の URL とトークンを入力して登録します
executor は「shell」を入力しましょう

  • sudo gitlab-runner register

また gitlab-runner ユーザに gpio 関連を操作できるように権限を与えます

  • sudo usermod -aG gpio gitlab-runner

動作確認

プロジェクトに以下のような .gitlab-ci.yml を登録して成功するか確認しましょう

stages:
  - stage1
  - stage2

.echo1_script: &echo1_script
  - "export MSG=hello"
  - "echo ${MSG}"
  - "export MSG=HELLO"

.echo2_script: &echo2_script
  - "echo ${MSG}"

echo:
  image:
    name: alpine:latest
  stage: stage1
  script:
    - *echo1_script
    - *echo2_script

停止する場合は ds64-shell で

  • sudo systemctl stop gitlab-runner

再度起動する場合は ds64-shell で

  • sudo systemctl start gitlab-runner

します

トラブルシュート

server certificate verification failed. CAfile: 
/home/gitlab-runner/builds/QopMjzNB/0/root/project1.tmp/CI_SERVER_TLS_CA_FILE CRLfile: none

が出る場合は libgnutls30 がちゃんとインストールされているか確認しましょう
エラー文でググると証明書を自分で作成したりする記事が出てきますがそれだとダメなので気をつけましょう

Gitlab と通信できるようにファイアウォールなどの設定も確認しましょう

最後に

少しハマるポイントがありましたがインストールして動作しました

ds64 モードで紹介しましたが普通に armv7 でも動くかもしれません

参考サイト

0 件のコメント:

コメントを投稿