こんにちは。ニフティの日下部です。
CoreOS Alpha 494.0.0 のパブリックイメージをリリースしました。
CoreOS というのは、 CoreOS, Inc が開発している、Docker を動かすことに特化した Linux ディストリビューションです。
現状では、リリースできた CoreOS 自体が Alpha であることと、 open-vm-tools を利用しているため、「ニフティクラウドユーザーブログライター」名義で公開しました。
Stable と Bata がリリースできていない理由は、下方の CoreOS のパブリックイメージ作成の経緯 で説明しています。
※ニフティクラウドでは、VMware Tools の削除、および同一機能を有するモジュールの追加を禁止しています。 参考:http://cloud.nifty.com/service/rule.htm
使い方
左メニューのイメージから、パブリックをクリックし、サイト上部の検索欄に「CoreOS」と入力すると、CoreOS Alpha 494.0.0 のイメージが表示されますので、ここから作成することができます。
また、CoreOS では、ネットワークの設定やユーザーの設定、 systemd の設定を cloud-config にて設定しますが、起動時スクリプトとして、 cloud-config の内容を入力できます。
例えば、Docker を起動しておくには下記のような cloud-config を入力します。
#cloud-config
coreos:
units:
- name: docker.service
command: start
cloud-config は、 /var/lib/coreos-niftycloud/user-data
に保存され、起動時に読み込まれます。
デフォルトでは、 nameserver も設定していないので、下記のようにすると良いかもしれません。
デフォルトで、下記のような設定が入っているため、ネットワーク周りを修正したい場合は、user-data で修正してください。(2014/12/15追記)
#cloud-config
coreos:
units:
- name: oem-ens192.network
content: |
[Match]
Name=ens192
[Network]
DHCP=v4
DNS=8.8.8.8
DNS=8.8.4.4
cloud-config について、詳しくは CoreOS 公式のドキュメント をご参照ください。
作成が完了したら、 SSH でログインします。
ssh core@xxx.xxx.xxx.xxx -i hoge.pem
バージョンは、 /etc/os-release
で確認します。
core@localhost ~ $ cat /etc/os-release
NAME=CoreOS
ID=coreos
VERSION=494.0.0+2014-11-10-0124
VERSION_ID=494.0.0
BUILD_ID=2014-11-10-0124
PRETTY_NAME="CoreOS 494.0.0+2014-11-10-0124"
ANSI_COLOR="1;32"
HOME_URL="https://coreos.com/"
BUG_REPORT_URL="https://github.com/coreos/bugs/issues"
先ほどの cloud-config を入力していた場合、下記のように Docker が起動した状態になります。
core@localhost ~ $ systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib64/systemd/system/docker.service; disabled)
Active: active (running) since Mon 2014-11-10 09:00:50 UTC; 22min ago
Docs: http://docs.docker.io
Process: 582 ExecStartPre=/bin/mount --make-rprivate / (code=exited, status=0/SUCCESS)
Main PID: 583 (docker)
CGroup: /system.slice/docker.service
└─583 /usr/bin/docker --daemon --storage-driver=btrfs --host=fd://
Nov 10 09:00:50 localhost systemd[1]: Started Docker Application Container Engine.
Nov 10 09:00:50 localhost docker[583]: 2014/11/10 09:00:50 docker daemon: 1.3.0 c78088f; execdri...trfs
Nov 10 09:00:50 localhost docker[583]: [e02b33ed] +job serveapi(fd://)
Nov 10 09:00:50 localhost docker[583]: [info] Listening for HTTP on fd ()
Nov 10 09:00:50 localhost docker[583]: [e02b33ed] +job init_networkdriver()
Nov 10 09:00:51 localhost docker[583]: [e02b33ed] -job init_networkdriver() = OK (0)
Nov 10 09:00:51 localhost docker[583]: [info] Loading containers:
Nov 10 09:00:51 localhost docker[583]: [info] : done.
Nov 10 09:00:51 localhost docker[583]: [e02b33ed] +job acceptconnections()
Nov 10 09:00:51 localhost docker[583]: [e02b33ed] -job acceptconnections() = OK (0)
Hint: Some lines were ellipsized, use -l to show in full.
簡単ですが、使い方は以上です。
何か不具合などありましたら、このブログにコメントするか、 @higebu までご連絡ください。
CoreOS のパブリックイメージ作成の経緯
まず、 CoreOS に VMware Tools を追加することができず、リリースが遅くなってしまいました。
実際に試していただくとわかると思うのですが、 CoreOS にはパッケージをインストールできないのと、公式の VMware Tools が systemd に対応していないのが原因です。
open-vm-tools であれば、 systemd に対応しているため、 CoreOS 自体のビルド時に入れることが可能で、 CoreOS 471.1.0 から、 VMware 環境用のイメージに open-vm-tools が入るようになっています。
ちなみに私はこの open-vm-tools 対応に少しだけ貢献しています。
CoreOS の開発者の方のリポジトリにプルリクエストしたため、わかりにくい取り込まれ方をしていますが、パッチのヘッダーに私の名前が書いてあります。
他には、ニフティクラウドの初期化スクリプトを改修し、 coreos-cloudinit に対応しています。
この辺りのソースは下記のリポジトリに置いてありますので、興味のある方はご参照いただければと思います。
https://github.com/higebu/coreos-overlay/tree/niftycloud/
https://github.com/higebu/scripts/tree/niftycloud/
また、ビルドの仕方についても機会があれば、どこかに公開したいと思います。
今後の話
現状のニフティクラウドでは open-vm-tools は NG ということになっているので、 OK にして、公式イメージにしたいと思っています。 また、 Stable と Beta のチャンネルのバージョンでは、まだ open-vm-tools が入っていないため、ニフティクラウド上では動かせませんが、入り次第対応します。 さらに、今回ニフティクラウド用に足した部分を本家リポジトリにマージしていただいたり、 CoreOS のオフィシャルプラットフォーム になったりできると良いですね。