TECHSTEP

ITインフラ関連の記事を公開してます。

GitLab Runnerのネットワーク要件を調査する

今回はGitLab Runnerのネットワーク要件を調査しました。なお検証後に該当のドキュメントを見つけてしまったので、検証の意味はあまりないです。

背景

以前GitLab Runnerの登録と利用を検証したのですが、GitLab Runnerを利用するときのネットワーク要件が明確に記載されたドキュメントを見つけられませんでした。いくつかのブログ等を見ると、GitLab SaaS版を使っている場合は gitlab.com へのhttps通信が許可されていればよいようでしたが、公式のドキュメントが見つからなかったので、念のため検証してみました。 検証後に再度探したところ、こちらのドキュメントに記載がありました。GitLabのネットワーク構成はこちらに一通り書かれているようです。

docs.gitlab.com

検証

GitLab Runnerの作成、トークン発行

あらかじめGitLab画面からRunnerを作成しておきます。

Amazon EC2インスタンスの作成

インスタンスの作成は、以前使用したCloudFormationテンプレートから gitlab-runner register の実行箇所を除外したものを使いました。

作成後、DockerのインストールやGitLab Runnerのパッケージが含まれていることを確認します。

[ec2-user@ip-10-0-0-138 ~]$ docker version
Client:
 Version:           20.10.25
 API version:       1.41
 Go version:        go1.20.12
 Git commit:        b82b9f3
 Built:             Fri Dec 29 20:37:18 2023
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.25
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.20.12
  Git commit:       5df983c
  Built:            Fri Dec 29 20:38:05 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.7.11
  GitCommit:        64b8a811b07ba6288238eefc14d898ee0b5b99ba
 runc:
  Version:          1.1.11
  GitCommit:        4bccb38cc9cf198d52bebf2b3a90cd14e7af8c06
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
[ec2-user@ip-10-0-0-138 ~]$ yum list | grep gitlab
gitlab-runner.x86_64                     16.9.1-1                     @runner_gitlab-runner
gitlab-runner-fips.x86_64                16.9.1-1                     runner_gitlab-runner
[ec2-user@ip-10-0-0-138 ~]$

Security Groupのアウトバウンド通信制

次にSecurity Groupのアウトバウンド通信を制限します。ここでは443ポートのみを許可するよう設定しました。

GitLab Runnerの登録

Security Groupを修正後、GitLab Runnerの登録を実行します。

[ec2-user@ip-10-0-0-138 ~]$ sudo gitlab-runner register \
>   --non-interactive \
>   --url "https://gitlab.com/" \
>   --token <GitLab runner authentication token> \
>   --executor "docker" \
>   --docker-image alpine:latest \
>   --description "docker-runner"
Runtime platform                                    arch=amd64 os=linux pid=6649 revision=782c6ecb version=16.9.1
Running in system-mode.

Verifying runner... is valid                        runner=ssmZ-8R_n
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"
[ec2-user@ip-10-0-0-138 ~]$

GitLabパイプラインの実行

GitLab Runnerの登録ができたのでGitLabパイプラインからRunnerを使って処理を実行しています。以前使用した .gitlab-ci.yml を使ってパイプラインを起動すると、問題なく処理が完了することを確認できました。