Skip to content

Ubuntu に GitLab Runner をインストールする

(コンテナでは無い) Ubuntu を GitLab の Runner として登録する方法は Install GitLab Runner manually on GNU/Linux に記載されています。 今回は Runner 登録方法の要点だけをメモしておきます。

検証環境

対象 バージョン
Ubuntu 22.04.4LTS
gitlab-runner 16.10.0

Runner のインストールと実行

Runner として登録したい Ubuntu 上で以下のコマンドを実行して Runner のクライアントをインストールします。

curl -L --output /usr/local/bin/gitlab-runner "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/binaries/gitlab-runner-linux-amd64" && \
chmod 755 /usr/local/bin/gitlab-runner

標準ユーザを利用する場合

Runner 実行専用ユーザ (gitlab-runner) を作成し、そのユーザで Runner を実行します。 但し、Install GitLab Runner manually on GNU/Linux の手順で作業すると GitLab 上から実行した Job が以下のエラーで終了してしまいます。

ERROR: Job failed: prepare environment: exit status 1. Check https://docs.gitlab.com/runner/shells/index.html#shell-profile-loading for more information

この問題を回避する為、gitlab-runner ユーザのホームディレクトリにある .bash_logout を無効化します。 このファイルを削除しても良いのですが、今回は移動 (名前の変更) をすることで無効化します。尚、mv /home/gitlab-runner/.bash_logout{,.org}mv /home/gitlab-runner/.bash_logout /home/gitlab-runner/.bash_logout.org と等価です。

useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash && \
mv /home/gitlab-runner/.bash_logout{,.org} && \
gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner && \
gitlab-runner start

これで Runner の実行は完了です。 systemctl status gitlab-runner.service でサービスの状態を確認すると自動起動設定もされていました。

# systemctl status gitlab-runner.service
● gitlab-runner.service - GitLab Runner
     Loaded: loaded (/etc/systemd/system/gitlab-runner.service; enabled; vendor preset: enabled)

尚、現時点ではバージョン 16.10.0 がインストールされました。

# gitlab-runner --version
Version:      16.10.0
Git revision: 81ab07f6
Git branch:   16-10-stable
GO version:   go1.21.7
Built:        2024-03-21T19:43:25+0000
OS/Arch:      linux/amd64

root ユーザを利用する場合

以下を実行します。

1
2
gitlab-runner install --user=root --working-directory=/root && \
gitlab-runner start

GitLab への Runner 登録

Docker Compose で GitLab / Runner を起動し、CI/CD する の手順に従い、Runner を登録します。 GitLab 上でトークンを発行したら Runner を実行している Ubuntu 側で「GitLab の URL」と「発行された Token」を指定しつつ、以下のように実行します。 実際には GitLab 上で「実行すべきコマンド」が表示されますので、それを Ubuntu 側へ貼り付けて実行するだけです。

gitlab-runner register --url http://10.0.0.1 --token glrt-12345678901234567890