2014年9月23日現在、さくらVPSではCoreOSのインストールは手動でやる必要があります。
いろいろつまづいたのでメモ程度にまとめておきます。
(CoreOS詳しくないのでこれで十分な設定なのかはよくわかりません…。問題あればご指摘ください)
インストール
CoreOSは、インストーラではなくLiveCDからOSが立ち上がるだけなので、
- リモートコンソールを開いて、
- いろいろ設定して、
coreos-install
する
という流れになります。
ISOインストール
なにはともあれCoreOSのISOイメージをアップロードします。マニュアルはこれ↓
ISOイメージインストール(β版)|さくらのVPS|さくらインターネット公式サポートサイト
ネットワークの設定
リモートコンソールを立ち上げてネットワークの設定をします。(さいごのip link set ~ up
は、はじめからUPになってるっぽいのでいらないかも)
sudo ip addr add X.X.X.X/X dev ethX sudo ip route add default via X.X.X.X dev ethX sudo ip link set dev ethX up
パスワードログインできるようにする
どうせcoreos-install
するとこの辺の設定は残らないので、
core
ユーザにパスワードを設定して一時的にパスワードログインできるようにします。
sudo passwd core
(以降はsshでログインして作業)
ネームサーバの設定
/etc/resolv.conf
に適切なネームサーバのIPを書く。
nameserver X.X.X.X nameserver X.X.X.X
cloud-config
をとってくる
あらかじめgistとかにあげといたcloud-configのテンプレートを、sed
で適切な値に書き換えて使います。今回、私がつくったのは、ほぼほぼこのブログ記事↓にあったcloud-configと
さくらのマニュアル↓にあったiptablesの設定
iptablesの設定方法|さくらのVPS|さくらインターネット公式サポートサイト
をほぼほぼそのままテンプレート化したものです。 IPv6は有効化してないので省いていたり、SSHのポート変えたりはしてます。
wget https://gist.githubusercontent.com/yutannihilation/7bde5eab7bae44d20209/raw/cloud-config.yml # 生成した秘密鍵は、ローカルに落としてきておく ssh-keygen -f /tmp/core_id DEVICE=ethX HOSTNAME=HOSTNAME SSH=12345 ADDRESS=$(ip a show dev ${DEVICE} | awk '$1 == "inet" {print $2}') NETMASK=$(ip route show default | awk '$1 == "default" {print $3}') PUBKEY=$(cat /tmp/core_id.pub) NS=($(awk '$1 == "nameserver" {print $2}' /etc/resolv.conf)) # sedの区切り文字として「,」を使っているのは、「/」が$ADDRESSに含まれていて使えないため sed -i \ -e "s,SSH,${SSH}," \ -e "s,HOSTNAME,${HOSTNAME}," \ -e "s,DEVICE,${DEVICE}," \ -e "s,ADDRESS,${ADDRESS}," \ -e "s,GATEWAY,${NETMASK}," \ -e "s,PUBKEY,${PUBKEY}," \ -e "s,NS1,${NS[0]}," \ -e "s,NS2,${NS[1]}," \ cloud-config.yml
使ったcloud-config
のテンプレート
インストールして再起動
coreos-install
の引数としてcloud-config
のファイルを指定することで、上記の設定でCoreOSのインストールが行われます。
sudo coreos-install -d /dev/vda -c cloud-config.yml
おわったら、VPSコンソールから「再起動」ボタンを押して再起動します。
ちょっとして、秘密鍵で指定したポートにSSHして入れることを確認したら成功です。
トラブルシューティング
なんどもつまづいて再インストールしたわけですが、このTips役立ちました。この技すごい。
CoreOSをさくらVPSサーバに入れようとして嵌ったのでメモ - Qiita
reboot してすぐ KVM/QEMU console が立ち上がる前に shift などを押して boot: プロンプトを出し boot: boot_kernel coreos.autologin とすれば コンソールから自動ログインすることができる。
私はShiftが利かなかったので、再起動後、VNCコンソール(HTML5版)左上のEscボタンを連打してたらいけました。