0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cisco Catalyst Center 2.3.7.x on ESXi をProxmoxにインストールしてみた

Posted at

はじめに

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の仮想マシンにアタッチして終了です。

仮想マシンのハードウェア構成です
Screenshot 2024-12-11 at 13.54.17.png

無事にブートしました
Screenshot 2024-12-11 at 13.55.04.png

セットアップが終了して起動しました
Screenshot 2024-12-11 at 14.03.27.png

まとめ

今回はProxmox上に Cisco Catalyst Center 仮想版をインストールしてみました。
皆さん、よい検証を!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?