GitLab Runner を Docker Machine の Generic ドライバを使って構築する
はじめに
GitLab Runner を使った CI/CD を行っています。 GitLab Runner を実行するサーバには、現在はクラウドサービスを利用せず、オンプレミスサーバ(という名の余っているPC)を使っています。
GitLab Runner を稼働させる物理PCを増やせば一度に実行できるジョブを増やせるのですが、増設作業と管理が面倒だなーと思っていました。 具体的には GitLab Runner を増設するときには、1台ごとに次の作業を行っています。
- サーバOSのセットアップ
- Docker のインストール
- GitLab Runner のインストール
- GitLab に GitLab Runner を登録する
- GitLab Runner の設定を調整する
一回セットアップしてしまえば、あとはほぼ安定して稼働してくれるのですが、GitLab Runner の設定値を変更したい場合には、各サーバで作業しなくてはならず煩わしく感じていました。
これらの問題に対して、GitLab Runner では Autoscaling GitLab Runner という機能を提供しています。 これを使うと必要なリソースに応じて EC2 や Kubernetes 上に用意したリソースを割り当てることができます。
今回は、オンプレ(という名の余っているPC)で気軽に増設と管理がしたかったので、Docker Machine の Generic ドライバで管理しているリモートの Docker Engine に対して GitLab Runner を設定してみます。
検証環境
次の3台のサーバを用意しました。 GitLab Runner と Docker Machine をインストールした master サーバと、Docker Engine をインストールした node サーバ2台を用意しました。
Docker Machine の generic ドライバを利用して、Docker Machine をインストールした master サーバから、node サーバ2台を操作します。
http://docs.docker.jp/machine/drivers/generic.html
- GitLab Runner サーバ(ホスト名: master)
- Ubuntu Server 18.04 LTS
- GitLab Runner
- Docker Engine
- Docker Machine
- Docker Engine サーバ(ホスト名: node1, node2)
- Ubuntu Server 18.04 LTS
- Docker Engine