はじめに
GitLab CIにおいて、GitLab Runnerを登録した手順を備忘録として残します。
GitLab Runnerの導入・登録(Docker版)
Dockerがインストール済みの前提です。
GitLab Runnerのconfigファイル(config.toml)を格納するボリュームを作成します。
sudo docker volume create gitlab-runner-config
GitLab Runnerのコンテナを起動します。タイムゾーンは東京を指定します。
sudo docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v gitlab-runner-config:/etc/gitlab-runner \
--env TZ=Asia/Tokyo \
gitlab/gitlab-runner:latest
GitLab RunnerをGitLab CIに登録します。
sudo docker run --rm -it -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner:latest register
GitLab Runnerの導入・登録(Linux版)
OSは RHEL 7 です。
RPMパッケージをダウンロードします。
GitLabのガイドでは、以下コマンドのamd64
の部分は ${arch}
となっていますが、その場合x86_64
に置き換えられ、該当のファイルが存在せず取得できないため、amd64
を直接指定しています。
curl -LJO "https://gitlab-runner-downloads.s3.amazonaws.com/latest/rpm/gitlab-runner_amd64.rpm"
ダウンロードしたRPMパッケージをインストールします。
sudo rpm -i gitlab-runner_amd64.rpm
GitLab RunnerをGitLab CIに登録します。
sudo gitlab-runner register
GitLabサーバとGitLab Runnerが同一サーバ上で稼働し、GitLab RunnerでDocker executorを使用する場合の注意点
GitLab RunnerはGitLabサーバ(GitLab CI)と通信を行いますが、GitLabサーバとGitLab Runnerが同一サーバ上で稼働しており、かつ、GitLab RunnerのexecutorがDockerの場合、Dockerコンテナ(executor)からホストOS(GitLab CI)へのアクセスが必要となります。
しかし、Dockerコンテナ(executor)からホストOSのFQDNが名前解決できないため、GitLab Runnerに以下の設定が必要です。
- DockerコンテナからホストOSにアクセスするためのIPアドレスを確認する (
docker0
インターフェースのIPアドレス) - GitLab Runnerの設定ファイル(config.toml)で、
[runners.docker]
セクションにextra_hosts
を設定する(以下の「other-host」の部分をFQDNで置き換える) (GitLab Advanced configuration -> The [runners.docker] section)
[runners.docker]
extra_hosts = ["other-host:xxx.xxx.xxx.xxx"]
※config.tomlのパス
- Docker版GitLab Runnerの場合 :
gitlab-runner-config
ボリュームのディレクトリ内のconfig.toml
(具体的なパスはdocker volume inspect
で確認 - Linux版GitLab Runnerの場合 :
/etc/gitlab-runner/config.toml