|
@ -25,6 +25,7 @@ VEOS_VMDK_BASENAME=$(basename -s .vmdk $2) |
|
|
GLANCE_IMAGE_NAME=$3 |
|
|
GLANCE_IMAGE_NAME=$3 |
|
|
GLANCE_IMAGE_RELEASE=$VEOS_VMDK_BASENAME-$ABOOT_SERIAL_ISO_BASENAME |
|
|
GLANCE_IMAGE_RELEASE=$VEOS_VMDK_BASENAME-$ABOOT_SERIAL_ISO_BASENAME |
|
|
TMP_NAME="vEOS-$GLANCE_IMAGE_RELEASE" |
|
|
TMP_NAME="vEOS-$GLANCE_IMAGE_RELEASE" |
|
|
|
|
|
TIMESTAMP=$(date +%Y%m%d%H%M%S) |
|
|
|
|
|
|
|
|
echo |
|
|
echo |
|
|
echo "Creating vEOS image..." |
|
|
echo "Creating vEOS image..." |
|
@ -41,8 +42,8 @@ echo "===========================================================" |
|
|
# convert vmdk to raw and extract two partitions in it |
|
|
# convert vmdk to raw and extract two partitions in it |
|
|
qemu-img convert -O raw $2 $VEOS_VMDK_BASENAME.raw |
|
|
qemu-img convert -O raw $2 $VEOS_VMDK_BASENAME.raw |
|
|
kpartx -av $VEOS_VMDK_BASENAME.raw |
|
|
kpartx -av $VEOS_VMDK_BASENAME.raw |
|
|
dd if=/dev/loop0p1 of=$VEOS_VMDK_BASENAME-p1.raw |
|
|
|
|
|
dd if=/dev/loop0p2 of=$VEOS_VMDK_BASENAME-p2.raw |
|
|
|
|
|
|
|
|
dd if=/dev/mapper/loop0p1 of=$VEOS_VMDK_BASENAME-p1.raw |
|
|
|
|
|
dd if=/dev/mapper/loop0p2 of=$VEOS_VMDK_BASENAME-p2.raw |
|
|
kpartx -d $VEOS_VMDK_BASENAME.raw |
|
|
kpartx -d $VEOS_VMDK_BASENAME.raw |
|
|
|
|
|
|
|
|
echo |
|
|
echo |
|
@ -50,9 +51,9 @@ echo "Injecting rc.eos startup script to get switch config..." |
|
|
echo "===========================================================" |
|
|
echo "===========================================================" |
|
|
|
|
|
|
|
|
# inject rc.eos script in first partition of the image, to get switch config defined in VM Maestro (config-drive) |
|
|
# inject rc.eos script in first partition of the image, to get switch config defined in VM Maestro (config-drive) |
|
|
mkdir swi |
|
|
|
|
|
mount -o loop $VEOS_VMDK_BASENAME-p1.raw swi |
|
|
|
|
|
cd swi |
|
|
|
|
|
|
|
|
mkdir swi-$TIMESTAMP |
|
|
|
|
|
mount -o loop $VEOS_VMDK_BASENAME-p1.raw swi-$TIMESTAMP |
|
|
|
|
|
cd swi-$TIMESTAMP |
|
|
cat << EOF > rc.eos |
|
|
cat << EOF > rc.eos |
|
|
#!/bin/sh |
|
|
#!/bin/sh |
|
|
# |
|
|
# |
|
@ -80,8 +81,8 @@ cp /mnt/flash/startup-config.tmp /mnt/flash/startup-config |
|
|
EOF |
|
|
EOF |
|
|
chmod 755 rc.eos |
|
|
chmod 755 rc.eos |
|
|
cd .. |
|
|
cd .. |
|
|
umount swi |
|
|
|
|
|
rmdir swi |
|
|
|
|
|
|
|
|
umount swi-$TIMESTAMP |
|
|
|
|
|
rm -rf swi-$TIMESTAMP |
|
|
|
|
|
|
|
|
echo |
|
|
echo |
|
|
echo "Injecting new partitions from vEOS vmdk in Aboot image..." |
|
|
echo "Injecting new partitions from vEOS vmdk in Aboot image..." |
|
@ -117,10 +118,10 @@ t |
|
|
12 |
|
|
12 |
|
|
w" | fdisk $TMP_NAME.raw >/dev/null |
|
|
w" | fdisk $TMP_NAME.raw >/dev/null |
|
|
|
|
|
|
|
|
# copy the partitions from vEOS vmdk to new image |
|
|
|
|
|
|
|
|
# copy the partitions from vEOS vmdk to new image |
|
|
kpartx -av $TMP_NAME.raw |
|
|
kpartx -av $TMP_NAME.raw |
|
|
dd if=$VEOS_VMDK_BASENAME-p1.raw of=/dev/loop0p2 |
|
|
|
|
|
dd if=$VEOS_VMDK_BASENAME-p2.raw of=/dev/loop0p3 |
|
|
|
|
|
|
|
|
dd if=$VEOS_VMDK_BASENAME-p1.raw of=/dev/mapper/loop0p2 |
|
|
|
|
|
dd if=$VEOS_VMDK_BASENAME-p2.raw of=/dev/mapper/loop0p3 |
|
|
kpartx -d $TMP_NAME.raw |
|
|
kpartx -d $TMP_NAME.raw |
|
|
|
|
|
|
|
|
echo |
|
|
echo |
|
|