(ちょっと自動で)さくらのVPSにCoreOSを入れるメモ


Dockerが熱いですね。
EC2とかGCEとかで試すのがいいんでしょうけど 
自分が既に契約している
さくらのVPSにインストールして見ようと頑張りました。

ただ 色々めんどくさかった (特にコピペのできないQEMU!)
なので忘れないようにメモしようと思います。

ちょっとはクラスタリング組むのも楽になるといいんですが。


手順は
http://qiita.com/yujiod/items/dc154120c4df2e938111
を参考に

ISOファイルに関しては
nyarlaさんの
https://github.com/nyarla/coreos-live-iso

のスクリプトをDockerfileに移植した
https://github.com/k2wanko/coreos-live-iso/tree/sakura-vps
を使ってやっていきます。

環境

  • Mac OS X
  • boot2docker Client version: v1.2.0
  • さくらVPS2G HDDプラン

設定ファイルの作成

$ git clone https://github.com/k2wanko/coreos-live-iso
$ cd coreos-live-iso
$ git checkout sakura-vps

中を見ると
sakuravps-configureがあるのでこれを使ってconfigを生成します。

中にさくらVPSコントロールパネルにログインするための
IPとPASSWORDを入れる欄ありますが入力しなくても聞いてきますので
編集する必要はありません

以下のコマンドで実行

$ ./sakuravps-configure

curlでゴリゴリアクセスした後
さくらVPSのサーバーに必要な設定が記述された、
vps-configcloud-configが生成されます。

cloud-configにおいて重要なのは以下の部分。

cloud-config
...
coreos:
  units:
    - name: 00-eth0.network
      runtime: true
      content: |
      [Mathc]
      Name=eth0

      [Network]
      Address=$VPS_IP/23
      Gateway=$VPS_GATEWAY
      DNS=$VPS_DNS1
      DNS=$VPS_DNS2

CoreOSはデフォルトでDHCPなのでこの設定ファイルを作ってあげることで固定IPアドレスを付加できます。

cloud-configはそれぞれの環境に合わせてカスタマイズしたり生成用のスクリプトも自分用に手を加えておけば、
さくらVPSを何台契約しても楽になると思います。
(合わせてEC2やGCE用のスクリプトも生成するようにすればクラスタリングを組むのも楽そうですね)

ISOの作成

cloud-configの設定を自分好みにカスタムしたら
buildスクリプトを叩けば一発です。

$ ./build

ISOのアップロードとLiveCDのインストール

ここからはさくらVPSコントロールパネルにアクセスしながら進めていきます。
とっておきのブラウザでアクセスしてください

ログインしたら

「OS再インストール」をクリックして進みます。

そして「ISOイメージをインストールへ」をクリックして進みアカウントの作成までします。

表示されたアカウントを使いsftpでISOファイルをアップロードします。


$ sftp [email protected]
[email protected]'s password:
Connected to vps-iso.sakura.ad.jp.
sftp> cd /iso
sftp> put CoreOS.master.iso
Uploading CoreOS.master.iso to /iso/CoreOS.master.iso
CoreOS.master.iso                          100%  126MB   4.1MB/s   00:31
sftp> exit

もしくは以下のコマンドでパスワードだけ入力すればアップロードできます。

$ sftp [email protected] 0< sftp-cmd

アップロードが完了したら「ISOイメージ」の「更新」ボタンをクリックします。

そして下の方にある「確認」をクリックし
「HTML5モードで開く(推奨)」をクリックし起動してるかな〜と確認します。

「localhost login:」ってのが出てきたら大丈夫です。

ただこの段階ではネットワークの設定が反映されていないので
コントロールパネルに戻り「仮想サーバー操作」の「再起動」ボタンを押して
再起動します。

もう一度リモートコンソールの「VNCコンソールを開く」をクリックして
推奨とのことなので「HTML5モードで開く(推奨)」をクリックして開きます。

今度も「localhost login:」まで見届ければいいんですが
ちょっと上にens3のところにVPSのIPが表示されていればネットワークの設定は大丈夫です。


eth0: XXX.XXX.XXX.XXX <-ここにVPSのIPが出ればOK
eth1:
eth2:


localhost login:

あとは皆大好きなコンソールから操作ができます。

coreosのインストール

core@localhost ~ $ sudo coreos-install -d /dev/vda -c cloud-config -C alpha -V current
```

終わったらコントロールパネルの再起動で再起動して完了です。

TIPS
#余談だけど以下のコマンドをローカルから実行してしまうと
#インストールに失敗し なんか色々大変になるので気をつけてください

ssh vps sudo coreos-install -d /dev/vda -c cloud-config -C alpha

せっかくなのでなんか動かしてみる

coreosで操作してます。

$ docker pull dockerfile/ghost
$ docker run -d -p 80:2368 dockerfile/ghost

ブラウザでアクセスして表示されれば成功!

まとめ

Dockerらしく簡単に作って消して作るってのがさくらのVPSではなかなかやりづらいですね

でもちょっとは作るのが楽になったので2台目契約した際にクラスタリングも色々設定をこねながら作れそうです。