piにgitlab-ceを入れて遊んでいるのだが、こいつにgitlab-runnerをセットアップしようとしてはまったのでメモ。以下の記事は悪戦苦闘した経緯を記録したものであり、最終的には動いたけど、最適解ではない。composeで起動する。実際は一つのymlファイルでgitlabとgitlab-runnerと両方立ち上げてるんだけど。runnersのページを見ると、deprecatedって書いてあるけど、かわりのやりかたがわからんので、そのままやる。runnersの設定gitlabにadminでログインする。左のリストからCI/CDのRunnersを選択。tokenを表示させ、コピーしておく。CI/CDとたどって、ページの中のRunnersを開く。token:という項目があるのでメモしておく。いうかこのページを開いておく。token:の内容を入力。runner:は空で入力と。runner.ん?certificatesが切れてる?Chromeでgitlabにアクセスしたときに、URLの欄が「保護されていない通信」ってなってて、そこをクリックから「証明書が無効です」をクリックすると上を含んだダイアログがでる。/etc/gitlab/ssl/raspberrypi.crtコマンドラインで見るならこれ。実際は、/etc/gitlab/ssl/raspberrypi.crtじゃなくて、Dockerのvolumesの元パスだし、raspberrypiじゃなくてホスト名変えてるけど。/dev/nullこれでも見られる。return:1今日は2023年です。こんなん俺作ったかな。gitlabが起動するときに勝手に作ったのかな。確かにWebでアクセスするときに、オレオレ証明書のエラーじゃなくて、違うエラーが出てたけど、気にせず使ってたわ。いうことで、証明書を作り直す。raspberrypi.csrこれで、証明書作成リクエストを作成。ここで国やら組織やらを聞かれるので適当に入力。raspberrypi.crtこれで証明書を作成。期限は3650日、すなわち10年を指定。出来上がったraspberrypi.crtを/etc/gitlab/ssl/raspberrypi.crtとして配置。restartで、gitlabを再起動。再起動で時間かかるのでしばらく放置。コンテナIDでgitlabのログから起動状況が見られるので落ち着くまで待つ。Chromeでgitlabにアクセスすると、相変わらずURL欄は「保護されていない通信」となっているが、証明書を表示すると有効期限は更新されている。いうことで、再度、gitlab-runnerでregister。registerで、再びエラー。runner.あ、やってもた。先の「証明書作成リクエストを作成」ステップでいろいろ聞かれたときに、答えが適当過ぎた。name)」はちゃんとraspberrypiとホスト名入れなきゃ。「証明書作成リクエストを作成」ステップからやり直し。gitlab-runnerでregister。runner.ん!今度はなんだよ。Name」を使うんじゃなくて、SAN(subectAltName)を使えと。そんなもん聞かれないじゃないか。raspberrypi.csrと、-addextで指定する模様。-textで確認するも、DNS:raspberrypiは入ってこない。大体、Versionが1のままじゃないか。raspberrypi.crtと、-x509を指定して、一気にcrtを作成。-textで上の行が埋まっていればOK。runner.まだ、気に入らんか。authorityは解決する模様。docker+machine:あ、通った。全部のトラップに躓いた気分。dockerを選択して、イメージ名を入力。Gitlabのページで、出た出た。AreaのCI/CD->Runnersの表示。