Gitlab CIを使ってみようと思ったが
自己証明書を使っているサーバに Gitlab runner を登録するとこで
ハマったので手順をメモ
手順
1. 証明書を取得
Gitlabサーバに使用されている証明書を取得します
opensslコマンドを使って取得するのが楽そうです
$ openssl s_client -connect my.gitlab.domain:443 -showcerts < /dev/null | openssl x509 -outform PEM > /etc/gitlab-runner/certs/my.gitlab.domain.crt
openssl s_client -showcerts
でサーバの証明書を確認することができます。
-showcerts は標準入力からの入力を待ちますので /dev/null
入力することによって
すぐに終了するようにしています。
crtファイルのファイル名はGitlabサーバのドメインと合わせて、
/etc/gitlab-runner/certs/
以下に配置します。
ここに置いておくことで gitlab-runner register
コマンドを実行した際に
証明書ファイルを読み込んでくれるようです
2. gitlab-runner register コマンドを実行
あとはコマンドを実行するだけです
$ sudo gitlab-runner register
その他
実際は docker in docker で動かすので
/etc/gitlab-runner/certs
をボリュームマウントしてあげたりする
参考
https://docs.gitlab.com/runner/register/index.html
https://github.com/ayufan/gitlab-ci-multi-runner/blob/master/docs/configuration/tls-self-signed.md
https://gitlab.com/gitlab-org/gitlab-runner/issues/1388