1. Home
  2. OpenStack
  3. How can an existing COD (Cluster On Demand) image be modified for Bright 7.3 and Bright 8.0?

How can an existing COD (Cluster On Demand) image be modified for Bright 7.3 and Bright 8.0?

Basically by resizing the image and adding what is needed.

Required elements:
Bright COD image
Image manifest
XFS tools package (xfsprogs) must be installed
loopback device support (is usually enabled by default)

Step one:

gunzip the image
gunzip bcmh-centos7u2-8.0-5.gzip

You should end up with a file :

Step two:

Resize the image to the size desired. By default the COD image has very little free space left. So, if you plan to add files of a significant size, then the size of the image needs to be increased.

qemu-img resize bcmh-centos7u2-8.0-5.img +10G # 
that would add 10 gigs to your image

Step three:

Connect the image to a loopback device:

offset=$(fdisk -l bcmh-centos7u2-8.0-5.img | grep Start -A1 | tail -n+2 | awk '{print $2*512}')
losetup --offset $offset -f bcmh-centos7u2-8.0-5.img

Step four:
Confirm the new size and the that the image is connected to a loopback device:

You should see a /dev/loopN in your device list.

Run kpartx on that loop device. You should end up with a partition when you run lsblk again, example :
kpartx -av /dev/loopN
loop1       7:1    0    25G  0 loop
└─loop1p1 253:0    0    25G  0 part

Step five:
Mount and resize the filesystem of the image :

mkdir /mnt/image

Please note that loopNpN is supposed to be the partition that you got from lsblk after you ran kpartx.

mount /dev/loopNpN /mnt
xfs_growfs /dev/loopNpN

Step six:
Chroot and execute your changes


chroot /mnt/image
yum update -y

Step seven:

Umount and disconnect the loopback device

umount /mnt/image
losetup -d /dev/loopN

Step eight:

Gzip the image and upload it using the instructions at https://kb.brightcomputing.com/knowledge-base/how-to-manually-add-cluster-on-demand-for-openstack-images/

gzip bcmh-centos7u2-8.0-5.img
export OS_PROJECT_NAME="bright"
cm-cluster-on-demand-openstack image install --is-public yes --image-file bcmh-centos7u2-8.0-3.img.gz

Updated on December 9, 2020

Related Articles

Leave a Comment