個人用のメモ。記事としての体裁は整えてません。
CMLにfree tierが出ていることを教えてもらった。
https://developer.cisco.com/docs/modeling-labs/cml-release-notes/
VIRL時代はベアメタルサーバーにインストールして触っていたが、CML2になってからは全然触ってなかった。
今の自宅サーバはKVMで運用していて、動くかわからないのもあって、購入を踏み切れずにいた。
free tierが出て動作確認ができそうだったので、とりあえずKVM上にデプロイしてみた。
まずはここからダウンロード
https://software.cisco.com/download/home/286193282/type/286326381/release/2.8.0%20Free%20Tier
使うのはこの2つ。
- cml2_f_2.8.0-6_amd64-32-iso.zip
- refplat-20241016-freetier-iso.zip
.ovaを使ってデプロイしてみてもいいかなと思ったが、こっちは一応VMWareをメインに想定しているようなので、とりあえずisoからベアメタルと同じような手順で試してみることに。
まずはKVMを動作させているサーバでnested VMが有効になっているのを確認する。
# cat /sys/module/kvm_intel/parameters/nested
Y
僕は普段cockpitを使ってVMを管理しているので、cockpitのGUIからVMをとりあえず作ってみた。
- CPU: 2 core / 4 thread (1 socket)
- RAM: 16GB
- DISK: 64GB
ブート自体はできたが、UEFIブートする必要があるらしい。
BIOSブートだと「UEFIブートじゃないと多分うまくいかないよ」的なメッセージが出た。
一度VM定義を削除し、ovmfをインストールして、QEMUでUEFIファームウェアを使えるようにする。
sudo apt install ovmf
libvirtのXMLを一から作ると大変なのと、UEFIブートを使うVMの設定に馴染みがなかったので、とりあえずvirt-installから入れることにした。
diskは最初にBIOSブートを試したときに作ったものを流用(64GB)。
os-variantはよくわからなかったのでとりあえずunknownにしたが、ブート画面を見るとUbuntuっぽかったのでUbuntu系のどれかにしてもいいかもしれない。
sudo virt-install --name CML2 --ram 16384 --disk path=/mnt/ssd1/disk/CML2.qcow2 --vcpus 4 --os-variant unknown --network bridge=br0 --graphics vnc,listen=0.0.0.0,password=password --video vga --cdrom /mnt/ssd0/cml2_2.8.0-6_amd64-32.iso --boot uefi --noreboot
起動するとディスクへのインストール自体は自動的にやってくれる。
再起動後にCMLのインストールが始まるが、IOSなどのイメージファイルは別途refplat ISOと呼ばれるファイルで配布されており、CMLのインストールの際にこれが必要になる。
refplat ISOはCML2のインストールイメージと同じくCiscoのサイトからダウンロードできる。
CMLのインストールを始める前に、一度VMを落として、refplat ISOをcdromとしてVMにアタッチする。
cockpitの仮想マシンGUIからアタッチしてみたが、なぜか権限で怒られてうまくいかなかった。(パーミッションを777とかにしてみたがダメだった)
error: Failed to start domain 'CML2'
error: internal error: process exited while connecting to monitor: 2024-12-04T07:57:33.787885Z qemu-system-x86_64: -blockdev {"driver":"file","filename":"/mnt/ssd0/refplat-20241016-freetier.iso","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}: Could not open '/mnt/ssd0/refplat-20241016-freetier.iso': Permission denied
ので、virsh editでXMLを編集することにした。
特別なことはなく普通にcdromを使うときと同じ容量で書いてあげればいい。
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/mnt/ssd0/refplat-20241016-freetier.iso'/>
<target dev='hdb' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='0' target='0' unit='1'/>
</disk>
(cockpitからアタッチしたものは、何故かdisk type="volume"になっており、qcow2をアタッチする際のような設定だった。これが良くなかったように思う)
VMを起動して、あとは指示に従ってCMLのインストールを進める。
とりあえずIOLと、ASAvを動かしてみる。
IOLはコンテナなので特に懸念はしておらず、実際問題なく動いた。
ASAvはVMで、NestedVMな環境で動くことになるためこっちが不安であった。
とりあえず簡単な疎通確認はできた。
アプライアンス、機能・設定によっては動かないのもありそうだが、ひとまず全く動かないわけではないことが分かった。
VIRL時代のVM Maestroに比べて、GUIが使いやすくなっていていいね!!!!