インストールメディアから無理やりWin10のインスタンスを作成する方法

OpenStackのWindowsイメージを作成する手順は, 一般的にはKVMでvirtioドライバをあわせてインストールするのが標準的。
参考:https://docs.openstack.org/ja/image-guide/windows-image.html

その他仮想環境(ESXi等)でWindowsをインストールして, その上でvirtioをインストールするというのも, まぁあり。

今回は無理やりOpenStack上でisoインストーラからWindowsをインストールして起動させるということを試した。

手順

1. isoイメージを登録
2. flavorを作成
3. インスタンス起動

と普通のながれだけれども, metadataとしてhw_disk_busとhw_cdrom_busとhw_vif_modelを指定することがポイントとなる。
メタデータは「hw_disk_bus=ide」「hw_cdrom_bus=ide」hw_vif_model=e1000」を設定する。
メタデータについてはこちらを参照。

OpenStackはRDOのOcataでAll-in-One構成。

イメージ作成

openstack image create --disk-format iso --property hw_disk_bus=ide --property hw_cdrom_bus=ide --property hw_vif_model=e1000 --file ./Win10.iso Win10.image

フレーバー作成

openstack flavor create --ram 2048 --ephemeral 36 --vcpus 2 --property hw_disk_bus=ide --property hw_cdrom_bus=ide --property hw_vif_model=e1000 Win10

※ エフェメラルディスクが認識されるのでここはCドライブとして見せたいサイズを指定する。
※ メタデータはフレーバーでは指定しなくても動くけど, 入れたほうが反応がマシになる気がしている。(真偽不明)

インスタンス作成

openstack server create --flavor Win10 --nic --net-id=xxx --image Win10.image --property hw_disk_bus=ide --property hw_cdrom_bus=ide --property hw_vif_model=e1000 Win10

結論

instanceのメタデータ(とくにhw_disk_bus=ide)を指定すればインストールメディアからのインスタンス作成はできることが分かった。
とりあえず動けば良いのであればそれでも良さそうだけれども, どうもimageやflavorも指定した方が動きがマシな気がする。
けれどもまともに使いたいのであればvirtioドライバを入れた方がよいので, virtioドライバがもはや無いOSに対してはこの手順は有効かと思われます。(Win2000とか・・・)

metadata
hw_disk_bus=ide
metadata
hw_disk_bus=ide
metadata
hw_disk_bus=ide
metadata
hw_disk_bus=ide
flavor 有り 無し 無し 無し
image 有り 有り 無し 無し
instance 有り 有り 有り 無し
インストール可能か Yes Yes Yes No

インストール画面が出た

インスタンスのhw_disk_busがideになっていて
エフェメラルディスクがあればディスクが見える

インスタンスのhw_disk_bus=ideが無いとディスクなしで終了となる

ひとまずこんな起動もできるよ的なメモとして。

VyOS-1.1.8のqcow2イメージを作る

過去, 幾度かやったけど毎度記憶が薄れていくので都度メモを残す。
(2018/4/18修正:MAC周りで不具合でたので修正)

1. isoダウンロード
2. 仮想ディスク作成
3. KVMで起動
4. VyOSインストール
5. sysprep

# isoダウンロード
wget https://downloads.vyos.io/release/1.1.8/vyos-1.1.8-amd64.iso
# 仮想ディスク作成
qemu-img create -f qcow2 ./vyos.qcow2 2G
# 仮想ディスク指定で起動
virt-install --name vyos118 --disk path=./vyos-1.1.8.qcow2 --vcpus=2 --ram 2048 --cdrom=./vyos-1.1.8-amd64.iso --os-type=linux --graphics vnc,listen=0.0.0.0 --noautoconsole
# VyOSにログイン
virsh console vyos118
# イメージインストール
system image install
# 以降, 「Yes」を連打。終わったらrebootして確認。
# 再起動後, インタフェースにMACの記述があったら削除
vyos@vyos$ conf
vyos@vyos# delete interface ethernet eth0 hw_id **
vyos@vyos# commit
vyos@vyos# save
vyos@vyos# exit

以上。