はじめに
Cisco Catalyst Center 2.3.7.x on ESXi をご存じでしょうか。
Cisco Catalyst Center は Cisco DNA Center が 2.3.7.x系から名称が変更されたもので、さらに2.3.7.x系から従来の専用アプライアンスだけではなく、ESXi上での仮想マシンとしての提供が始まりました。
VM要件の主なところを並べると以下の通りです。
Feature | Description |
---|---|
Virtualization platform and hypervisor | VMware vSphere (which includes ESXi and vCenter Server) 7.0.x or later, including all patches. |
Processors | Intel Xeon Scalable server processor (Cascade Lake or newer) or AMD EPYC Gen2 with 2.1 GHz or better clock speed. 32 vCPUs with 64-GHz reservation must be dedicated to the VM. |
Memory | 256-GB DRAM with 256-GB reservation must be dedicated to the VM. |
Storage | 3-TB solid-state drive (SSD). If you plan to create backups of your virtual appliance, also reserve additional datastore space. For information, see "Backup Server Requirements" in the Cisco Catalyst Center on ESXi Administrator Guide. |
I/O Bandwitdh | 180 MB/sec. |
Input/output operations per second (IOPS) rate | 2000-2500, with less than 5 ms of I/O completion latency. |
Latency | Catalyst Center on ESXi to network device connectivity: 200 ms. |
メモリは256GBを仮想マシンに割り当てる必要があるため、ホストマシンは256GBより多いメモリの搭載が必要になります。
目的
私は検証環境としてProxmoxが好きなので、サポート外でありますが、Proxmox上にCisco Catalyst Centerをインストールしてみましょう。
本件はメーカーでは未サポートのデプロイになります。
自己責任での利用をお願いします。
手順
Catalyst Center 2.3.7.7 および、 Proxmox 8.3.0 でのテストを実施しました。
CiscoのCCOのサイトからCisco Catalyst Center の.ovaファイルを取得して解凍します。
$ tar xvf CatC-SW-2.3.7.7-VA.ova
CatC-SW-2.3.7.7-VA_SHA256.ovf
CatC-SW-2.3.7.7-VA_SHA256.mf
CatC-SW-2.3.7.7-VA_SHA256.cert
CatC-SW-2.3.7.7-VA_SHA256-disk1.vmdk
CatC-SW-2.3.7.7-VA_SHA256-disk2.vmdk
CatC-SW-2.3.7.7-VA_SHA256-disk3.vmdk
私はLVM-ThinをVM向けストレージにしているので、VMDKからrawファイルに変換します。ZFSでも同様です。
$ qemu-img convert -f vmdk -O raw CatC-SW-2.3.7.7-VA_SHA256-disk1.vmdk CatC-SW-2.3.7.7-VA_SHA256-disk1.raw
$ qemu-img convert -f vmdk -O raw CatC-SW-2.3.7.7-VA_SHA256-disk2.vmdk CatC-SW-2.3.7.7-VA_SHA256-disk2.raw
$ qemu-img convert -f vmdk -O raw CatC-SW-2.3.7.7-VA_SHA256-disk3.vmdk CatC-SW-2.3.7.7-VA_SHA256-disk3.raw
標準状態ではVMwareとProxmoxでPCIスロットの番号が異なることから、インストーラを書き換えるためにRAWファイルをマウントします。
本来ESXi用なので、NIC interface が ens160 を期待するインストーラになっている。(PCI slot 16番)
これをProxmoxにインストールしたとき (i440fx)の ens18等に書き換える不調があります。
/dev/sda1-part4 が当該のイメージファイルなので、適当にmountして書き換えるのが手っ取り早いです。
sed -i s/検索パターン/置換パターン/g ファイル名
$ sudo losetup -f -P test/CatC-SW-2.3.7.7-VA_SHA256-disk1.raw
$ sudo mount /dev/loop0p4 /media/
cd /media
マウントしたイメージ上で、関連するファイルを探します。バージョン毎に出てくるファイルが異なっているので、バージョンが違う場合はきちんと確認ください。
$ find . -type f -exec grep -q ens160 {} \; -print
出てきたファイルに対して書き換えます。
sudo sed -i s/ens160/ens18/g ./etc/maglev/web-install/dna-preinstall_map.json
sudo sed -i s/ens160/ens18/g ./etc/maglev/web-install/dnacluster-preinstall_map.json
sudo sed -i s/ens160/ens18/g ./etc/maglev/web-install/maglevsystem-postinstall_map.json
sudo sed -i s/ens160/ens18/g ./etc/maglev/web-install/maglevsystem-preinstall_map.json
sudo sed -i s/ens160/ens18/g ./etc/maglev/web-install/maglevsystemseed-postinstall_map.json
sudo sed -i s/ens160/ens18/g ./etc/maglev/web-install/maglevsystemseed-preinstall_map.json
sudo sed -i s/ens160/ens18/g ./etc/maglev/web-install/preinstall_map.json
sudo sed -i s/ens160/ens18/g ./etc/maglev/cloud-init-netplan.cfg
sudo sed -i s/ens160/ens18/g ./etc/netplan/config.yaml.temp
sudo sed -i s/ens160/ens18/g ./etc/netplan/config.yaml.orig
sudo sed -i s/ens160/ens18/g ./etc/netplan/config.yaml.prime
sudo sed -i s/ens160/ens18/g ./etc/netplan/config.yaml
sudo sed -i s/ens160/ens18/g ./etc/network/interfaces.orig
sudo sed -i s/ens160/ens18/g ./mnt/install-artifacts/apps-deploy/product-config/bond_map.json
sudo sed -i s/ens160/ens18/g ./mnt/install-artifacts/bond_map.json
sudo sed -i s/ens160/ens18/g ./mnt/install-artifacts/dna-preinstall_map.json
sudo sed -i s/ens160/ens18/g ./mnt/install-artifacts/dnacluster-preinstall_map.json
sudo sed -i s/ens160/ens18/g ./mnt/install-artifacts/interface_map.json
sudo sed -i s/ens160/ens18/g ./mnt/install-artifacts/maglevsystem-postinstall_map.json
sudo sed -i s/ens160/ens18/g ./mnt/install-artifacts/maglevsystem-preinstall_map.json
sudo sed -i s/ens160/ens18/g ./mnt/install-artifacts/maglevsystemseed-postinstall_map.json
sudo sed -i s/ens160/ens18/g ./mnt/install-artifacts/maglevsystemseed-preinstall_map.json
sudo sed -i s/ens160/ens18/g ./mnt/install-artifacts/mks-edge-manufactured.json
sudo sed -i s/ens160/ens18/g ./mnt/install-artifacts/mks_edge-interface_map.json
sudo sed -i s/ens160/ens18/g ./mnt/install-artifacts/preinstall_map.json
sudo sed -i s/ens160/ens18/g ./usr/local/lib/python3.6/dist-packages/maglev_config_wizard/ansible/roles/cloud-enablement/files/aws/udev.rules
sudo sed -i s/ens160/ens18/g ./usr/local/lib/python3.6/dist-packages/maglev_config_wizard/ansible/roles/cloud-enablement/files/cloud-init-netplan.cfg
sudo sed -i s/ens192/ens19/g ./etc/maglev/web-install/dna-preinstall_map.json
sudo sed -i s/ens192/ens19/g ./etc/maglev/web-install/dnacluster-preinstall_map.json
sudo sed -i s/ens192/ens19/g ./etc/maglev/web-install/maglevsystem-postinstall_map.json
sudo sed -i s/ens192/ens19/g ./etc/maglev/web-install/maglevsystem-preinstall_map.json
sudo sed -i s/ens192/ens19/g ./etc/maglev/web-install/maglevsystemseed-postinstall_map.json
sudo sed -i s/ens192/ens19/g ./etc/maglev/web-install/maglevsystemseed-preinstall_map.json
sudo sed -i s/ens192/ens19/g ./etc/maglev/web-install/preinstall_map.json
sudo sed -i s/ens192/ens19/g ./etc/maglev/cloud-init-netplan.cfg
sudo sed -i s/ens192/ens19/g ./etc/netplan/config.yaml.temp
sudo sed -i s/ens192/ens19/g ./etc/netplan/config.yaml.orig
sudo sed -i s/ens192/ens19/g ./etc/netplan/config.yaml.prime
sudo sed -i s/ens192/ens19/g ./etc/netplan/config.yaml
sudo sed -i s/ens192/ens19/g ./etc/network/interfaces.orig
sudo sed -i s/ens192/ens19/g ./mnt/install-artifacts/apps-deploy/product-config/bond_map.json
sudo sed -i s/ens192/ens19/g ./mnt/install-artifacts/bond_map.json
sudo sed -i s/ens192/ens19/g ./mnt/install-artifacts/dna-preinstall_map.json
sudo sed -i s/ens192/ens19/g ./mnt/install-artifacts/dnacluster-preinstall_map.json
sudo sed -i s/ens192/ens19/g ./mnt/install-artifacts/interface_map.json
sudo sed -i s/ens192/ens19/g ./mnt/install-artifacts/maglevsystem-postinstall_map.json
sudo sed -i s/ens192/ens19/g ./mnt/install-artifacts/maglevsystem-preinstall_map.json
sudo sed -i s/ens192/ens19/g ./mnt/install-artifacts/maglevsystemseed-postinstall_map.json
sudo sed -i s/ens192/ens19/g ./mnt/install-artifacts/maglevsystemseed-preinstall_map.json
sudo sed -i s/ens192/ens19/g ./mnt/install-artifacts/mks-edge-manufactured.json
sudo sed -i s/ens192/ens19/g ./mnt/install-artifacts/mks_edge-interface_map.json
sudo sed -i s/ens192/ens19/g ./mnt/install-artifacts/preinstall_map.json
sudo sed -i s/ens192/ens19/g ./usr/local/lib/python3.6/dist-packages/maglev_config_wizard/ansible/roles/cloud-enablement/files/aws/udev.rules
sudo sed -i s/ens192/ens19/g ./usr/local/lib/python3.6/dist-packages/maglev_config_wizard/ansible/roles/cloud-enablement/files/cloud-init-netplan.cfg
sudo sed -i s/ens224/ens20/g ./etc/maglev/web-install/dna-preinstall_map.json
sudo sed -i s/ens224/ens20/g ./etc/maglev/web-install/dnacluster-preinstall_map.json
sudo sed -i s/ens224/ens20/g ./etc/maglev/web-install/maglevsystem-postinstall_map.json
sudo sed -i s/ens224/ens20/g ./etc/maglev/web-install/maglevsystem-preinstall_map.json
sudo sed -i s/ens224/ens20/g ./etc/maglev/web-install/maglevsystemseed-postinstall_map.json
sudo sed -i s/ens224/ens20/g ./etc/maglev/web-install/maglevsystemseed-preinstall_map.json
sudo sed -i s/ens224/ens20/g ./etc/maglev/web-install/preinstall_map.json
sudo sed -i s/ens224/ens20/g ./etc/maglev/cloud-init-netplan.cfg
sudo sed -i s/ens224/ens20/g ./etc/netplan/config.yaml.temp
sudo sed -i s/ens224/ens20/g ./etc/netplan/config.yaml.orig
sudo sed -i s/ens224/ens20/g ./etc/netplan/config.yaml.prime
sudo sed -i s/ens224/ens20/g ./etc/netplan/config.yaml
sudo sed -i s/ens224/ens20/g ./etc/network/interfaces.orig
sudo sed -i s/ens224/ens20/g ./mnt/install-artifacts/apps-deploy/product-config/bond_map.json
sudo sed -i s/ens224/ens20/g ./mnt/install-artifacts/bond_map.json
sudo sed -i s/ens224/ens20/g ./mnt/install-artifacts/dna-preinstall_map.json
sudo sed -i s/ens224/ens20/g ./mnt/install-artifacts/dnacluster-preinstall_map.json
sudo sed -i s/ens224/ens20/g ./mnt/install-artifacts/interface_map.json
sudo sed -i s/ens224/ens20/g ./mnt/install-artifacts/maglevsystem-postinstall_map.json
sudo sed -i s/ens224/ens20/g ./mnt/install-artifacts/maglevsystem-preinstall_map.json
sudo sed -i s/ens224/ens20/g ./mnt/install-artifacts/maglevsystemseed-postinstall_map.json
sudo sed -i s/ens224/ens20/g ./mnt/install-artifacts/maglevsystemseed-preinstall_map.json
sudo sed -i s/ens224/ens20/g ./mnt/install-artifacts/mks-edge-manufactured.json
sudo sed -i s/ens224/ens20/g ./mnt/install-artifacts/mks_edge-interface_map.json
sudo sed -i s/ens224/ens20/g ./mnt/install-artifacts/preinstall_map.json
sudo sed -i s/ens224/ens20/g ./usr/local/lib/python3.6/dist-packages/maglev_config_wizard/ansible/roles/cloud-enablement/files/aws/udev.rules
sudo sed -i s/ens224/ens20/g ./usr/local/lib/python3.6/dist-packages/maglev_config_wizard/ansible/roles/cloud-enablement/files/cloud-init-netplan.cfg
sudo sed -i s/ens256/ens21/g ./etc/maglev/web-install/dna-preinstall_map.json
sudo sed -i s/ens256/ens21/g ./etc/maglev/web-install/dnacluster-preinstall_map.json
sudo sed -i s/ens256/ens21/g ./etc/maglev/web-install/maglevsystem-postinstall_map.json
sudo sed -i s/ens256/ens21/g ./etc/maglev/web-install/maglevsystem-preinstall_map.json
sudo sed -i s/ens256/ens21/g ./etc/maglev/web-install/maglevsystemseed-postinstall_map.json
sudo sed -i s/ens256/ens21/g ./etc/maglev/web-install/maglevsystemseed-preinstall_map.json
sudo sed -i s/ens256/ens21/g ./etc/maglev/web-install/preinstall_map.json
sudo sed -i s/ens256/ens21/g ./etc/maglev/cloud-init-netplan.cfg
sudo sed -i s/ens256/ens21/g ./etc/netplan/config.yaml.temp
sudo sed -i s/ens256/ens21/g ./etc/netplan/config.yaml.orig
sudo sed -i s/ens256/ens21/g ./etc/netplan/config.yaml.prime
sudo sed -i s/ens256/ens21/g ./etc/netplan/config.yaml
sudo sed -i s/ens256/ens21/g ./etc/network/interfaces.orig
sudo sed -i s/ens256/ens21/g ./mnt/install-artifacts/apps-deploy/product-config/bond_map.json
sudo sed -i s/ens256/ens21/g ./mnt/install-artifacts/bond_map.json
sudo sed -i s/ens256/ens21/g ./mnt/install-artifacts/dna-preinstall_map.json
sudo sed -i s/ens256/ens21/g ./mnt/install-artifacts/dnacluster-preinstall_map.json
sudo sed -i s/ens256/ens21/g ./mnt/install-artifacts/interface_map.json
sudo sed -i s/ens256/ens21/g ./mnt/install-artifacts/maglevsystem-postinstall_map.json
sudo sed -i s/ens256/ens21/g ./mnt/install-artifacts/maglevsystem-preinstall_map.json
sudo sed -i s/ens256/ens21/g ./mnt/install-artifacts/maglevsystemseed-postinstall_map.json
sudo sed -i s/ens256/ens21/g ./mnt/install-artifacts/maglevsystemseed-preinstall_map.json
sudo sed -i s/ens256/ens21/g ./mnt/install-artifacts/mks-edge-manufactured.json
sudo sed -i s/ens256/ens21/g ./mnt/install-artifacts/mks_edge-interface_map.json
sudo sed -i s/ens256/ens21/g ./mnt/install-artifacts/preinstall_map.json
sudo sed -i s/ens256/ens21/g ./usr/local/lib/python3.6/dist-packages/maglev_config_wizard/ansible/roles/cloud-enablement/files/aws/udev.rules
sudo sed -i s/ens256/ens21/g ./usr/local/lib/python3.6/dist-packages/maglev_config_wizard/ansible/roles/cloud-enablement/files/cloud-init-netplan.cfg
Proxmoxの仮想マシンにストレージとしてインポートします。今回は仮想マシンのIDは500、ストレージの保存は"data"を使用しています。
$ sudo qm importdisk 500 CatC-SW-2.3.7.7-VA_SHA256-disk1.raw data
$ sudo qm importdisk 500 CatC-SW-2.3.7.7-VA_SHA256-disk2.raw data
$ sudo qm importdisk 500 CatC-SW-2.3.7.7-VA_SHA256-disk3.raw data
あとは当該ストレージをProxmoxの仮想マシンにアタッチして終了です。
まとめ
今回はProxmox上に Cisco Catalyst Center 仮想版をインストールしてみました。
皆さん、よい検証を!