概要
なんか、CoreOSのバージョンがチョロチョロかわって、よくわかりませんが、Xen4.4の上でCoreOSを動かしてみます
もうXenの環境は構築し終わっていて、rootfstype=tmpfs
なCoreOSを追加のGuestVMとして投入する方法です
作業
PXE bootのファイルを取得し、それを使って起動できます
XenHost:
$ sudo mkdir /boot/coreos/
$ cd /boot/coreos/
$ sudo wget http://stable.release.core-os.net/amd64-usr/current/coreos_production_pxe.vmlinuz
$ sudo wget http://stable.release.core-os.net/amd64-usr/current/coreos_production_pxe_image.cpio.gz
coreos01.cfg
name = 'coreos01'
kernel = '/boot/coreos/coreos_production_pxe.vmlinuz'
ramdisk = '/boot/coreos/coreos_production_pxe_image.cpio.gz'
extra = 'rootfstype=tmpfs sshkey="ssh-rsa AA...N8= foobar@example.jp"'
memory = 512
vcpus = 2
vif = [ 'bridge=xenbr0' ]
※rootをtmpfsにしているので、ディスクは入れていません
ポイント
PXE bootのノウハウがそのまま使えます
- PXE bootのappend行内のinitrdは、.cfgのramdiskに書きます
- それ以外のappend行のパラメータを、extraに書きます
ほんと、それだけです。cloud-config.yamlもここで指定できます
ここまでくれば、あとはなんとかできるでしょ
起動とかログインとか
XenHost:
$ sudo xl create coreos01.cfg -c
余談(IPv6の話)
DHCPサーバが立っていないと、IPv6のリンクローカルアドレスのみがCoreOSへアクセスできる、唯一の方法となります
言い方を変えれば、IPv6でならsshログインできます
$ ssh -6 core@fe80::....:123a%xenbr0
リンクローカルアドレスへのアクセスは、インターフェイスの指定が必要です
CoreOSのeth0はvif*を通じてxenbr0に接続されているので、xenbr0を指定します
あとがき
IPv6。。。なんかめんどい