今回はGitLab Runnerのネットワーク要件を調査しました。なお検証後に該当のドキュメントを見つけてしまったので、検証の意味はあまりないです。
背景
以前GitLab Runnerの登録と利用を検証したのですが、GitLab Runnerを利用するときのネットワーク要件が明確に記載されたドキュメントを見つけられませんでした。いくつかのブログ等を見ると、GitLab SaaS版を使っている場合は 検証後に再度探したところ、こちらのドキュメントに記載がありました。GitLabのネットワーク構成はこちらに一通り書かれているようです。gitlab.com
へのhttps通信が許可されていればよいようでしたが、公式のドキュメントが見つからなかったので、念のため検証してみました。
検証
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
を使ってパイプラインを起動すると、問題なく処理が完了することを確認できました。