WindowsのDocker ToolboxのRancherOSでRancherとConcourseを動かす


職場がJenkinsすぎるんですが、JenkinsのUIがどうしても好きになれないのでConcourseを試そうと思いまして。
かといって、いきなり稼働中のサーバーにぶち込むのもアレなので、いったん練習のためにWindowsのDocker環境を構築し、試すことにしました。
ニッチすぎていいねが0かもしれないけど、そんなことは気にしない。
いいねなんて飾りです。偉い人にはそれがわからんのです。

はじめに

今回、Docker ToolboxをWindows上にインストールし、RancherOSを突っ込んでやります。
で、RancherOS上でRancherを稼働させ、ConcourseのPrivate Catalogを作成した後、Concourseを立ち上げます。

  • Docker Toolbox -> VirtualBoxを使って楽にDocker環境動かせるやつ。legacyとか言われてるけどこっちは貧乏なので仕方ない。
  • RancherOS -> Docker用のとても小さいOS。cloud-config使える。
  • Rancher -> コンテナを管理しやすくするやつ。でも2.0からはkubeだって...ピエェ!
  • Concourse -> Jenkins駆逐艦隊。見た目がナウい。CIツールは見た目が9割。

何故Docker for Windowsを使わないかって?
ボーイ、My Windows(ここ)はHome Editionだぜ...。1

Docker Toolbox入れる

インストールページに行ってexeおとして実行しましょう。

情報送信のチェックボックスはオフる。気にならないなら良いですが。

インストールパスはお好みで。

全部チェック。

一番下にチェックを入れた方がよろしい模様。理由はググってください。

あとはよしなに。

Dockerホスト作成

インストールが完了したら、DockerQuickstartTerminalを起動。

DOS窓が開いてごちゃごちゃ出力されたのち、くじらが表示されればOK。

以降のオペはここで実行。

Dockerホストの確認と停止

まず、現状のDockerホストを確認します。

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
default   *        virtualbox   Running   tcp://192.168.99.100:2376           v18.03.1-ce

デフォルトがいますが、今回はRancherOSにしたいので、取りあえず止めます。

$ docker-machine stop default
Stopping "default"...
Machine "default" was stopped.

RancherOSホストの作成

次に、以下のコマンドでRancherOSをホストに追加します。

$ docker-machine create -d virtualbox \
--virtualbox-boot2docker-url https://releases.rancher.com/os/latest/rancheros.iso \
--virtualbox-memory 4096 \
--engine-opt mtu=1402 \
ranchang
  • -d -> driver。virtualbox使うので。
  • --virtualbox-boot2docker-url -> boot2docker(Docker用の軽量Linuxディストリ)のイメージを指定。ここにRancherOSを指定してやる。
  • --virtualbox-memory -> ホストに割り当てるメモリ。デフォルトの1024だとRancherが動かないので、取りあえず4096に増やしてやる。
  • --engine-opt mtu=1402 -> mtuを指定してやります。これをやらなかったら、mtuの設定がホストとコンテナでずれて通信が死んだ...ような。

最後のranchangはホスト名なのでなんでもいいです。

では入ってみましょう。
ログインできればOKです。

$ docker-machine ssh ranchang
[docker@ranchang ~]$

Rancherのインストール

Rancher Serverのコンテナを作成します。
Dockerコマンドが何を意味しているのかはググってもらうとして...。

[docker@ranchang ~] docker run -d \
--restart=unless-stopped \
-p 8080:8080 \
--name=rancher-server \
--hostname=rancher-server \
rancher/server

(略)

[docker@ranchang ~]$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                              NAMES
425008c0dfcb        rancher/server      "/usr/bin/entry /u..."   43 seconds ago      Up 42 seconds       3306/tcp, 0.0.0.0:8080->8080/tcp   rancher-server

インストールが終わったら、ホストIPの8080ポートにアクセスします。
以下が見えたらOK。チェックボックスのチェックを外してGot itします。
(この匿名送信系はデフォルトで無効にしてほしい...)

ホスト追加しろといわれてるので、します。

IPとかあってたらそのままSave。

以下の画面が表示されるので、5の右のアイコン?をクリックする。
これで、左に表示されているコマンドがクリップボードにコピーされる。

コピーしたコマンドをranchang上で実行する。
実行したのち、Rancherのページの上部メニューで「INFRASTRUCTURE」->「Hosts」を選択。
以下のように、ホストが登録されていればOK。

ConcourseのPrivate Catalogを作る

カタログって何だよって人はこれ見てください。
要するに、Rancherで「あのサービス使いたいなぁ」と思った時にボタン数発でサクッとその一連のサービスを立ち上げるための設計書みたいなものです。

公式のdocker-composeを参考に作成したPrivate Catalogがこちらです。
後で使うので、以下の図のところでURLをこぴっておいてください。

では、Private Catalogを追加していきます。
Rancherのページの上部メニューより「CATALOG」->「ALL」を選択。
表示された画面の右側の「Manage」をクリックします。

「Add Catalog」をクリックするとリストの下に入力できる箇所が増えるので、左にカタログのグループ?名、真ん中に使いたいカタログのgitのURL(今回は先ほどこぴったもの)、右にそのカタログのブランチ名を入力して、「Save」をクリック。

うまく登録できれば、CATALOGメニューにcustomが増えているはず。
勿論、ご自身でPrivate Catalog作るに越したことはないです。

Concourseの設定と起動

Catalogは準備できたので、いよいよ起動します。

まず、Concourse起動時の設定を行うので、ConcourseのCatalogのViewをクリック。

ページ下部にConfiguration Optionsがあるので、よしなにいじったあと、更に下部の「Launch」をクリックします。
尚、Concourseは本来8080がデフォルトポートなのですが、Rancherと見事にバッティングしてるので、8080は使わないでください。

Launchクリック後、自動的にStackのページに飛びます。
ここのステータスがすべてActiveになった後、おもむろにポート番号のリンクをクリックし、

Concourseの画面2が出たら成功です。Optionsで設定したユーザー/パスワードが有効かをログインして確認してみてもよいでしょう。

Concourseの使い方はスコープ外ですので、この辺で失礼いたします。


脚注

  1. Docker for windowsはHyper-Vを利用するので、貧乏Homerは指を咥えて見ているしかないんだよ。 

  2. ペンギンの存在感が圧倒的過ぎて大体目に付く。