このブログを検索

この記事の内容は、個人の見解、検証の範囲のものであり、誤りがある可能性があります。
個人の責任において情報活用をお願いします。


2026年7月31日金曜日

GitLab と GitLab Runner を連携させて CI/CD っぽいことをしてみる その4

今回は、前回作成した GitLab のプロジェクトに GitLab Runner を連携させたいと思います。
まずGitLab の WEB UI にログインして作成したプロジェクトを表示ます。
「設定」から「CD/CI」をクリックします。
「Runner」を表示します。
このプロジェクトを識別するためのタグ(demo-pj01)を設定して、「プロジェクトRunner」の作成をクリックします。
「Linux」を選択して、ステップ1のコマンドをコピーします。
GitLab Runner のサーバーで root になりコピーしたコマンドを入力します。

root@git-runner:~# gitlab-runner register  --url https://<gitlabのfqdn>  --token glrt-DnR0u35gt9tiKvFFn-MWR286MQpwOjIKdDozCnU6MQ8.01.170fcyrqe
Runtime platform                                    arch=amd64 os=linux pid=170536 revision=ac71f4d8 version=18.10.0
Running in system-mode.
途中聞かれる質問は基本的にそのままで大丈夫ですが、executor の指定は今回Ubuntuなのでshellにしています。
Enter the GitLab instance URL (for example, https://gitlab.com/):
[https://<gitlabのfqdn>]:
Verifying runner... is valid                        correlation_id=01KRWQ1H85FFAE7EBBXKXFK530 runner=DnR0u35gt runner_name=git-runner
Enter a name for the runner. This is stored only in the local config.toml file:
[git-runner]:
Enter an executor: ssh, parallels, docker+machine, kubernetes, docker-autoscaler, instance, virtualbox, docker, docker-windows, custom, shell:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

Configuration (with the authentication token) was saved in "/etc/gitlab-runner/config.toml"
root@git-runner:~#
登録が成功すると、「新しい Runner を登録しました」 と表示されますので「Runner を表示する」をクリックします。
登録された Runner が確認できるようになりました。
実際に連携して動いてくれるかを確認します。
今回は以下のファイルをプロジェクトに push してコマンドが実行されるかどうかで確認します。

.gitlab-ci.yml
stages:
  - check

runner-test-job:
  stage: check
  tags:
    - demo-pj01  # ここを登録したタグ名に合わせます
  script:
    - echo "===================================="
    - echo "GitLab Runner (demo-pj01) の動作確認に成功しました!"
    - echo "===================================="
    - whoami
    - date
これをプッシュして、GUIで「ビルド」の「ジョブ」を見てみると処理が流れて・・・エラーになります。
なんやねん。と思って調べたらどうやら Ubuntu の初期設定で CD/CI のような非対話式の処理でログアウトが行われるとエラーと返してしまうようです。
今回は検証なので以下のコマンドで該当の処理を行うファイルを削除します。
rm /home/gitlab-runner/.bash_logout
削除したら、GUI にもどって右上にある「再実行」のボタンからやり直します。
今度はうまくいきましたね。 それでは、次回はこれを使ってプロジェクトに push されたことをトリガーにして、何か処理を行うものを作ってみたいと思います。