gitlab-runnerを設定する

  • 2021/07/02 手順番号がおかしくなっていたため修正

はじめに

5月にgitlabをDockerで構築するところまで実施したので、今度はgitlab-runnerを導入してみた。 そのときの導入手順等メモしておく。

gitlab runnerとは

GitLabにはbuildやtest、deploy、releaseなど一連の作業を自動実行するCI/CD機能があるが、 その機能と組み合わせて使うものがGitLab Runner。GitLab Runnerはこれらのジョブを実行してくれるツール。 リポジトリへのcommitを検知してGitLab Runnerがjobを実行し、実行結果をGitLabから確認したりできる。

本記事の表記

  • コマンドラインのプロンプトは $# で表記する
    • $ は一般ユーザで実行することを表す
    • # は特権ユーザで実行することを表す
  • ## のあとはコメントを表す

環境

作業環境は下記の通りGitLabを導入したサーバ上で行う。

  • ハードウェア
項目 備考
OS Ubuntu 18.04
CPU 4 core 本家推奨は4core以上
MEM 4 GB 本家によるとは4GB以上必須

gitlabをDockerで構築する

手順

基本的な手順は構築したGitLabにログインし、 管理エリア->Runner->ランナーのインストール手順を表示する に遷移すると 記載されているが記載しておく。

  1. システムのバイナリをダウンロード

     $ sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
    
  2. 実行権限付与

     $ sudo chmod +x /usr/local/bin/gitlab-runner
    
  3. GitLab CIのユーザを作成

     $ sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
    
  4. サービスとしてインストール

    $ sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
    
  5. 実行

    $ sudo gitlab-runner start
    
  6. Runnerの登録

$ sudo gitlab-runner register --url https://<任意のドメイン>/ --registration-token <トークン>
Runtime platform                                    arch=amd64 os=linux pid=21668 revision=c1edb478 version=14.0.1
Running in system-mode.                            
                                                   
Enter the GitLab instance URL (for example, https://gitlab.com/):
[https://<任意のドメイン>/]: 
Enter the registration token:
[XXXXXX]:    ## トークン 
Enter a description for the runner:
[gitlab]: 
Enter tags for the runner (comma-separated):
shared       ## 任意のタグを付与する
Registering runner... succeeded                     runner=XXXXXXXX
Enter an executor: ssh, virtualbox, docker+machine, docker-ssh+machine, custom, docker, parallels, shell, kubernetes, docker-ssh:

ERROR: Invalid executor specified                  
Enter an executor: docker, parallels, shell, ssh, virtualbox, docker+machine, docker-ssh+machine, custom, kubernetes, docker-ssh:
docker
Enter the default Docker image (for example, ruby:2.6):
ubuntu:20.04      ## dockerの場合イメージは自身の好みで。centosがよければそちらを使うでもよし          
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 

あとがき

今回はインストールまで。ここからが本番で .gitlab-ci.yml とかの設定方法とか諸々試してメモしていく予定。

参考