Cisco CUCM

How to create CUCM (Cisco Unified Communications Manager): 

It will require a little bit more advanced skills with Linux.

EVE Image Name Downloaded filename Version vCPU RAM HDD Format NIC format Qemu format
cucm-12.5.1 UCSInstall_CUP_12.5.1.11900-117.sgn.iso 12.5.1 2 4096 virtioa vmxnet3 2.12.0
Instructions

Note/Warning: this image creation require to have at least 80Gb free space on your EVE server HDD! it is not suitable for small PC EVE VMs

Phase 1: Make original install image bootable and KVM supported

For this you will need an actual CUCM installation ISO.

Step 1: Use your Cisco CCO account to obtain original CUCM install ISO. Current was UCSInstall_CUP_12.5.1.11900-117.sgn.iso.

Step 2: Login to EVE IP as root using SSH protocol (Putty). Create the temporary folders for ISO preparation.

sudo mkdir /mnt/iso

sudo mkdir /tmp/cucm

Step 3: Upload the downloaded image to the EVE root directory using FileZilla or WinSCP.

Step 4: Mount the downloaded CUCM iso file in the /mnt/iso

sudo mount -o loop UCSInstall_UCOS_12.5.1.11900-146.sgn.iso /mnt/iso/

Step 5: Copy files from mounted ISO to the /tmp/cucm/ directory

rsync -a /mnt/iso/ /tmp/cucm/

Step 6: Edit mounted /tmp/cucm/ content to enable KVM:

cd /tmp/cucm/Cisco/hssi/server_implementation/KVM/QEMU/shared/bin
mv api_implementation.sh.proposed api_implementation.sh
cd

Step 7: Disable Openstack support renaming the file:

cd /tmp/cucm/Cisco/hssi/server_implementation/OpenStack/shared/bin/
mv api_implementation.sh api_implementation.sh.proposed
cd

Step 8: Edit hasHwSnmpMonitoring function in Cisco/base_scripts/ihardware.sh (It is important if you make this node first time and pass SNMP check)

nano /tmp/cucm/Cisco/base_scripts/ihardware.sh

Find and change content for:

function hasHwSnmpMonitoring()
{
return 1
}

Save you changes with key combo “ctrl+o”  enter and then press key “x” for exit

Step 9.

Create bootable iso file:

cd /tmp/cucm/
mkisofs -o /tmp/cucm/Boot_UCSInstall_UCOS_12.5.1.11900-146.sgn.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -R .

root@eve-ng:/tmp/cucm# ls
Boot_UCSInstall_UCOS_12.5.1.11900-146.sgn.iso
root@eve-ng:/tmp/cucm#

Step 10. Unmount original iso from mnt

umount /mnt/iso

 

Phase 2: CUCM image installation for EVE:

For this you will need created bootable CUCM installation ISO in Phase 1.

1. Create a new directory for this image according to the naming convention:

mkdir /opt/unetlab/addons/qemu/cucm-12.5.1.11900-146/

2. Copy created bootable CUCM ISO to the image directory renaming it to cdrom.iso : /opt/unetlab/addons/qemu/12.5.1.11900-146/

cp /tmp/cucm/Boot_UCSInstall_UCOS_12.5.1.11900-146.sgn.iso /opt/unetlab/addons/qemu/cucm-12.5.1.11900-146/cdrom.iso

3. Go to that directory via CLI

cd /opt/unetlab/addons/qemu/cucm-12.5.1.11900-146/

4. Create a new virtual 80Gb harddisk named virtioa.qcow2.

/opt/qemu/bin/qemu-img create -f qcow2 virtioa.qcow2 80G

5. Create a new lab and add the newly created cucm-12.5.1.11900-146 node. IMPORTANT: Connect it to lab envionment where you have configured DNS server. It can be simple Cisco router which will respond your FQDN and will act as DNS and NTP server. Start the CUCM node. When CUCM install is asking check media, skip it.

7. Continue CUCM setup wizard steps. Use your own lab IP and DNS settings.

8. Finish installation and shutdown properly the CUCM node, CLI: utils system shutdown

9. Clean up EVE hdd space  from temporary files:

rm -r /tmp/cucm

 

Phase 3: Commit CUCM image for further use:

IMPORTANT: Commit the installation to set it as the default image for further use in EVE-NG:

1. On the left side-bar within the lab in the EVE Web-UI choose “Lab Details” to get your lab’s UUID details: In this example: UUID: 9a4f9db1-4ab2-4e8c-b066-0d25ceeb540b

2. Find out the POD ID of your used and the Node ID of your newly installed node.

The POD number is assigned to your username, and can be found in the EVE GUI, Management/User Management. The Admin user uses POD number 0 by default.

The Node ID can be obtained by right clicking the node on the topology. In this Example it is 4

3. From the EVE CLI, locate the installed image and commit your changes to be used as default for further use in EVE-NG: POD, Node ID and LAB ID numbers will be yours!

cd /opt/unetlab/tmp/0/9a4f9db1-4ab2-4e8c-b066-0d25ceeb540b/4/
/opt/qemu/bin/qemu-img commit virtioa.qcow2

4. Remove cdrom.iso from /opt/unetlab/addons/qemu/cucm-12.5.1.11900-146/

cd /opt/unetlab/addons/qemu/cucm-12.5.1.11900-146/
rm -f cdrom.iso

DONE

Advanced instructions on how to make your image smaller in size (sparsify&compress). RECOMMENDED !

  1. After you have done all the steps above and your default image is created, you can compress its HDD and make it smaller.

IMPORTANT: for compressing an image you must have sufficient free space on your EVE host, the free space must exceed the total space (30GByte in this example) of the HDD you plan to shrink. The space needed can vary but will be the total space of the disk to be shrunk plus the size of the final sparsified and compressed image. To be safe you should have double the size of the HDD you want to shrink as free space on your EVE host. In our example we needed 35GB of free HDD space. Once this process is done, the temporary file(s) will be deleted and free space reclaimed.

  1. From the CLI: go to your CUCM image directory:
cd /opt/unetlab/addons/cucm-12.5.1.11900-146

and perform the sparsify command:

virt-sparsify  --compress virtioa.qcow2 compressedvirtioa.qcow2
  1. This will take some time and another compressed image will be created in the same image directory (cucm-12.5.1.11900-146)
  2. now you can rename your original virtioa.qcow2 file to orig.qcow2
mv virtioa.qcow2 orig.qcow2
  1. Rename the compressed image name to virtioa.qcow2:
mv compressedvirtioa.qcow2 virtioa.qcow2
  1. now you can test your new compressed image on a lab, just wipe the node and start it.
  2. If the compressed node works fine, you can delete your original source image:

 

DONE