2014年11月14日金曜日

さくらのVPSにCoreOSをインストールする

Immutable Infrastructureが面白そうだったので、そのための環境としてさくらのVPSにCoreOSをインストールしてみました。

まずはCoreOSのイメージをダウンロード

ダウンロード先 https://coreos.com


CoreOSのイメージをさくらのVPSに転送し、イメージから立ち上げる

  1. 転送先確認:VPSコントロールパネル➡OS再インストール➡ISOイメージインストールへ
  2. ホスト名とユーザ名、パスワードを確認してWinSCP等で転送
  3. 転送後、イメージが正しければ「確認」をクリック
  4. ISOイメージから仮想サーバの起動を実行する
  5. 表示されるインストール情報をメモする
  6. VNCコンソールから「HTML5モードで開く」をクリック

これでCoreOSイメージから立ち上がった状態となります。

インストール前の準備を行う

  • 立ち上げたイメージへネットワーク設定を行う

$ sudo vi /etc/systemd/network/static.network
設定内容:
[Match]
Name=eth0

[Network]
Address=IPアドレス/サブネットマスク
Gateway=IPアドレス
DNS=IPアドレス ←8.8.8.8とかにしました


  • sshアクセスするためcoreユーザにパスワードを設定する

$ sudo passwd core
これでsshでアクセス可能となります。

  • RSA暗号鍵を作成する

インストール後のCoreOS環境にアクセスする準備としてRSA暗号方式の鍵を作成する
$ ssh-keygen -t rsa
作成された「~/.ssh/id_rsa」の内容をアクセス元となる環境に送る。
(PuTTYがアクセス元ならputtygen.exeを使ってprivate keyを作っておく)
作成された「~/.ssh/id_rsa.pub」は次のコンフィグファイルに記載する。

  • インストール用コンフィグファイルの作成

$ sudo vi cloud-config
設定内容:
#cloud-config

write_files:
  - path: /etc/systemd/network/static.network
    permissions: 0644
    content: |
      [Match]
      Name=eth0

      [Network]
      Address=IPアドレス/サブネットマスク
      Gateway=IPアドレス
      DNS=8.8.8.8

ssh_authorized_keys:
  - ssh-rsa AAA・・・ core@localhost


CoreOSインストール開始

  • インストールコマンドの実行

$ sudo coreos-install -d /dev/vda -c cloud-config -C stable

Downloading the signature for http://stable.release.core-os.net/amd64-usr/444.5.0/coreos_production_image.bin.bz2...
2014-11-09 01:59:44 URL:http://stable.release.core-os.net/amd64-usr/444.5.0/coreos_production_image.bin.bz2.sig [543/543] -> "/tmp/coreos-install.dDd9kaQr2C/coreos_production_image.bin.bz2.sig" [1]
Downloading, writing and verifying coreos_production_image.bin.bz2...
2014-11-09 02:00:48 URL:http://stable.release.core-os.net/amd64-usr/444.5.0/coreos_production_image.bin.bz2 [181896522/181896522] -> "-" [1]
gpg: Signature made Thu Oct 16 01:28:13 2014 UTC using RSA key ID E5676EFC
gpg: key 93D2DCB4 marked as ultimately trusted
gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: Good signature from "CoreOS Buildbot (Offical Builds) <buildbot@coreos.com>" [ultimate]
Installing cloud-config...
Success! CoreOS stable 444.5.0 is installed on /dev/vda

インストールが完了したら再起動を行う。

起動後にsshでアクセスが出来れば成功
表示例
login as: core
Authenticating with public key "imported-openssh-key"
Last login: XXX
CoreOS (stable)
core@localhost ~ $

はまったトラブル

  • ネットワークの設定

当初はコンフィグファイルで「Name=ens3」とかにしていたが、アクセスできなかったので「Name=eth0」とした。

  • インストール時に失敗する

インストールを開始すると以下のメッセージで失敗した。
gpg: Signature made Thu Oct 16 01:28:13 2014 UTC using RSA key ID E5676EFC
gpg: key 93D2DCB4 marked as ultimately trusted
gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: Good signature from "CoreOS Buildbot (Offical Builds) <buildbot@coreos.com>" [ultimate]
BLKRRPART: Device or resource busy

どうやら、もともと入っていたOSが消せなかったようなのでfdiskで削除してから実行した。

  • インストール後、アクセス出来ない

これが一番困った。
しかし、インストール後にもう一度再起動するとアクセス出来るようになった。
なんらかのタイミングの問題か。


0 件のコメント:

コメントを投稿