さくらのクラウドでCoreOSを動かしてみた
最近になってようやくDockerに目覚めまして、本番環境にDockerを使った場合の監視方法などを模索している今日このごろ。
ちょうどオープンソースカンファレンスでさくらのクラウドの2万円分無料クーポンをもらった*1ので、さくらのクラウドにGentooベース(のChromeOSベース)で有名なCoreOSを載せてDocker環境を構築してみた次第。さくらさんありがとう!ありがとう!ありがとう!
どうすればCoreOSを構築できるか
さくらのクラウドではKVM/QEMUを使用しており、CoreOSはQEMU用イメージを用意しているものの、ホスト側を操作できるわけではないのでこの方法は取れない。
そこでInstalling CoreOS to Diskを参考に構築することにした。
CoreOSを起動するサーバをまず用意する
さくらのクラウドはDHCPでIPアドレスが取得できず、またCoreOSのcoreユーザにはパスワードが設定されていないため、Installing CoreOS to Diskの手順でそのまま構築するとSSH、コンソールのどちらからもアクセスできなくなってしまう。
そこでまずIPアドレスを決定するためにブランクディスクでサーバを作成する。
作成後、NICタブを押して以下の4つを控えておく。
また、ディスクタブでHDDを取り外す。
Ubuntuサーバを用いてDiskにCoreOSをインストール
つづいてUbuntuでサーバを作成。先ほど取り外したディスクを接続して起動。手順はInstalling CoreOS to Diskのとおりだが、さくらのクラウドに合わせて適宜読み替え。
wget https://raw.github.com/coreos/init/master/bin/coreos-install chmod +x coreos-install sudo ./coreos-install -d /dev/vdb cat > cloud-config.yml <<EOF #cloud-config.yml ssh_authorized_keys: - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0g+ZTxC7weoIJLUafOgrm+h...(ssh公開鍵を記述) write_files: - path: /etc/systemd/network/10-static.network content: | [Match] Name=ens* [Network] Address=(IPv4アドレス)/(ネットマスク) Gateway=(ゲートウェイ) DNS=(推奨ネームサーバ1) DNS=(推奨ネームサーバ2) EOF sudo mount /dev/vdb6 /mnt sudo cp cloud-config.yml /mnt/ sudo umount /mnt
CoreOSを起動する
ここまでできたら一旦Ubuntuサーバの電源を落として20GBの追加ディスクを取り外し、CoreOSサーバに接続しなおして起動。
ssh core@(IPv4アドレス)
で接続すればok。
______ ____ _____ / ____/___ ________ / __ \/ ___/ / / / __ \/ ___/ _ \/ / / /\__ \ / /___/ /_/ / / / __/ /_/ /___/ / \____/\____/_/ \___/\____//____/ core@localhost ~ $
ヒャッホーイ!
まとめ
*1:実はもらったクーポンを紛失したので中の人に再発行してもらった