GitLab Runner を Docker Machine の Generic ドライバを使って構築する

はじめに

GitLab Runner を使った CI/CD を行っています。 GitLab Runner を実行するサーバには、現在はクラウドサービスを利用せず、オンプレミスサーバ(という名の余っているPC)を使っています。

GitLab Runner を稼働させる物理PCを増やせば一度に実行できるジョブを増やせるのですが、増設作業と管理が面倒だなーと思っていました。 具体的には GitLab Runner を増設するときには、1台ごとに次の作業を行っています。

  1. サーバOSのセットアップ
  2. Docker のインストール
  3. GitLab Runner のインストール
  4. GitLab に GitLab Runner を登録する
  5. 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台を用意しました。

f:id:u9bo:20190331201316p:plain:w300

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
続きを読む