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
root ユーザを利用する場合¶
以下を実行します。
1 2 |
|
標準ユーザを利用する場合¶
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
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
参考¶
# gitlab-runner --help
NAME:
gitlab-runner - a GitLab Runner
USAGE:
gitlab-runner [global options] command [command options] [arguments...]
VERSION:
18.2.1 (cc489270)
AUTHOR:
GitLab Inc. <support@gitlab.com>
COMMANDS:
list List all configured runners
run run multi runner service
register register a new runner
reset-token reset a runner's token
install install service
uninstall uninstall service
start start service
stop stop service
restart restart service
status get status of a service
run-single start single runner
unregister unregister specific runner
verify verify all registered runners
wrapper start multi runner service wrapped with gRPC manager server
fleeting manage fleeting plugins
artifacts-downloader download and extract build artifacts (internal)
artifacts-uploader create and upload build artifacts (internal)
cache-archiver create and upload cache artifacts (internal)
cache-extractor download and extract cache artifacts (internal)
cache-init changed permissions for cache paths (internal)
health-check check health for a specific address
proxy-exec execute internal commands (internal)
read-logs reads job logs from a file, used by kubernetes executor (internal)
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--cpuprofile value write cpu profile to file [$CPU_PROFILE]
--debug debug mode [$RUNNER_DEBUG]
--log-format value Choose log format (options: runner, text, json) [$LOG_FORMAT]
--log-level value, -l value Log level (options: debug, info, warn, error, fatal, panic) [$LOG_LEVEL]
--help, -h show help
--version, -v print the version