CentOS8のクラウドイメージ(qcow2)をESXiで起動する

クラウドに慣れるとOSインストールがめんどくさいですよね。
というわけで公式で配布されているCentOSクラウドイメージをESXiで起動できるようにします。

クラウドイメージは こちらからダウンロードしました。
CentOS-8-GenericCloud-8.2.2004-20200611.2.x86_64.qcow2が最新っぽいのでこれを使います。

qcow2をvmdkに変換する

なんとなくWSL2で起動したUbuntu20.04で変換しました。

まずは必要なものをインストールします。

$ sudo apt install -y qemu
$ sudo apt install -y qemu-utils
$ sudo apt install -y genisoimage

エクスプローラーで「¥¥wsl$」でアクセスできるのでコピーします。

convert_qcow2_vmdk_01.png

qemu-imgでvmdkに変換します。
ファイル名はcentos8.vmdkにしました。

$ qemu-img convert -f qcow2 -O vmdk CentOS-8-GenericCloud-8.2.2004-20200611.2.x86_64.qcow2 centos8.vmdk

数秒で変換できました。
やっぱり自作でそれなりのスペックにしてるのでその恩恵が得られるのでしょうか。
これはちょっと便利かも。

cloud-initの準備

このままvmdkで起動してもご存知クラウドイメージはデフォルトで鍵認証なのでログインできません。
なのでcloud-initで起動時に設定してあげる必要があります。
手順は こちら が参考になりそうです。

meta-dataとuser-dataはこんな感じにしました。
検証用なのでパスワード認証にします。他はサンプルのままです。

$ cat meta-data
instance-id: vco01
local-hostname: vco-01
$ cat user-data
#cloud-config
password: Velocloud123
chpasswd: {expire: False}
ssh_pwauth: True

ではISOファイルを作成します。

$ genisoimage -output vco01-cidata.iso -volid cidata -joliet -rock user-data meta-data
I: -input-charset not specified, using utf-8 (detected in locale settings)
Total translation table size: 0
Total rockridge attributes bytes: 331
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 0
183 extents written (0 MB)

仮想マシンの起動

作成したvmdkファイルとisoファイルで仮想マシンを作成します。
ESXiのデータストアにアップロードしておいてください。
ちなみにバージョンは6.7です。

# vmware -vl
VMware ESXi 6.7.0 build-15160138
VMware ESXi 6.7.0 Update 3

新規仮想マシンで作成します。

convert_qcow2_vmdk_02.png

一旦ハードディスクを削除して、既存のハードディスクでアップロードしたvmdkファイルを選択します。
この時、IDEコントローラーにしてください。でないと起動に失敗します。

convert_qcow2_vmdk_03.png

CD/DVDドライブでアップロードしたisoファイルを選択します。
これでcloud-initを実行できるらしいです。

convert_qcow2_vmdk_04.png

オプションのタブでファームウェアを「BIOS」にしてください。
そうしないと以下のエラーで起動に失敗しました。

EFI vmware virtual ide hard drive unsuccessful
convert_qcow2_vmdk_05.png

うまく起動したらuser-dataで設定したパスワードでログインしてみてください。
ログインできれば成功です。
※デフォルトのユーザーはcentosです。

convert_qcow2_vmdk_06.png

もっとドライバーとかで手こずると思いましたが、意外と簡単ですね。