職場が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します。
(この匿名送信系はデフォルトで無効にしてほしい...)
以下の画面が表示されるので、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の使い方はスコープ外ですので、この辺で失礼いたします。