カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

CoreOS を fleet とか etcd 抜きで使ってみた

概要: 以下技術系ポエムです。


ちょうど昨日、僕の持っている、

  • Mac mini late 2012

に、OSX Yosemite を再インストールして、自宅サーバにすべく、 必要最低限のソフトウェアだけを入れて云々、という作業をしていたのですが、 その際に znc や lingr-ircd 等をホストするのに、

  • fleet や etcd を使っていない CoreOS

を使用したので、その辺りの話をメモがてらまとめてみます。

1. 用意した環境

基本的にはCoreOS の2015年3月末時点の stable を VMware Fusion 上で動かして、その際の環境構築の手順は、

を参考にしました。

それで、普通にクラスタとか組む場合には、 cloud-config に fleet や etcd の起動設定を書くと思うんですが、 今回僕が作った環境では、その辺りをすっ飛ばして、

  • ただの CoreOS だけ

という環境にしました。まー理由としては、 fleet とか etcd を動かすのが面倒だったのと、 あとクラスタを組むとかつもりが無いってのが大きな理由です。はい。

で、後はその素っ気ない CoreOS 環境に、

  • znc
  • lingr-ircd

を突っ込みました。

んで次の話。

2. 一部 Dockerfile を書き直した

んで、上記の様に構築した CoreOS の VM では、ストレージの容量が少なかったので、 その辺りをケチる為に、 lingr-ircd に関してはコンテナのベースイメージに、

を使いました。

で、僕の場合、lingr-ircd に関しては、 @mattn さんの、

という Golang ware を使っていたので、おもむろに上記リポジトリをチェックアウトしてきて

$ GOOS=linux go build .

を行ってクロスコンパイルし、下記の様な Dockerfile でコンテナをビルドしました:

FROM progrium/busybox
EXPOSE 26667

ADD lingr-ircd /bin/lingr-ircd
ENTRYPOINT ["/bin/lingr-ircd"]
CMD [ "-help" ]

で、あとは上記コンテナをサービスとして動かすために、CoreOS VM 上の

  • /etc/systemd/system/docker-lingr-ircd.service

に、

[Unit]
Description=Lingr IRCD
After=docker.service
Requires=docker.service

[Service]
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill lingr-ircd
ExecStartPre=-/usr/bin/docker rm lingr-ircd
ExecStart=/usr/bin/docker run --name lingr-ircd -p 192.168.2.253:26667:26667 nyarla/lingr-ircd -apikey=XXXXXX
ExecStop=/usr/bin/docker stop lingr-ircd

[Install]
WantedBy=multi-user.target

と言う感じのファイルを用意して、

$ sudo systemctl start docker-lingr-ircd.service
$ sudo systemctl enable docker-lingr-ircd.service

という感じにコマンドを実行し、lingr-ircd をサービスとして登録しました。

3. 使ってみた感想

うん、まあ、結構楽でした。はい。

まーでも CoreOS は本来、クラスタを組んで云々するのが本領で、 こういった使い方はあんまりせんだろう、とは思うのですが、 今回の様な、単なる Docker host として使うのでも結構便利です。

で、あと今回、コンテナのベースイメージに、

を使ったわけなんですが、このベースイメージ、結構サイズが小さいので、 容量の少ない VPS などで単体の実行バイナリだけをコンテナに押し込みたい、 っていう時には結構重宝するかと思います。

あと上記ベースイメージの作者の方は dokku の作者でもある @progrium 氏なので、 信頼できるかどうかの云々も問題ないかと思います。

というコトで以上

技術系ポエムでした。

で、この前の記事で僕は OSX の IM を

にした、と言っていたワケなんですが、 実は AquaSKK (というかSKK) にまだ慣れてない影響で、 この記事を書くのがめっちゃ大変でした。つーか変換ルールはなんとなく分かったけど、 Typo が多いせいで、入力効率がめっちゃ悪いという。あと、前の IM のクセとか残ってるし。 あとはまあ、最近ブログを書くのもさぼっていたので、その辺りの影響も有りそうではありますが。


という感じで今日というか今回の記事は以上です。

まあ大した中身もないのですが、昨日とかにそんなコトをしてたよって話でした。

終わります。まる