summaryrefslogtreecommitdiff
path: root/scripts/build-vmware-image
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build-vmware-image')
-rwxr-xr-xscripts/build-vmware-image210
1 files changed, 0 insertions, 210 deletions
diff --git a/scripts/build-vmware-image b/scripts/build-vmware-image
deleted file mode 100755
index e56ce13..0000000
--- a/scripts/build-vmware-image
+++ /dev/null
@@ -1,210 +0,0 @@
-#!/bin/sh
-#
-# Copyright (C) 2019 VyOS maintainers and contributors
-#
-# This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 or later as published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# File: build-vmware-image
-# Purpose:
-# Build VyOS image for VMWARE.
-
-if [ ! $(which vmdk-convert) ]; then
- echo "Your system doesn't have vmdk-convert. Please install it from https://github.com/vmware/open-vmdk."
- exit 1
-else
- echo "Your system has vmdk-convert."
-fi
-
-if [ ! $(which ovftool) ]; then
- echo "Your system doesn't have ovftool. Please install it from https://www.vmware.com/support/developer/ovf/."
- exit 1
-else
- echo "Your system has ovftool."
-fi
-
-lb bootstrap
-
-lb chroot
-lb installer
-lb binary_chroot
-lb chroot_devpts install
-lb chroot_proc install
-lb chroot_selinuxfs install
-lb chroot_sysfs install
-lb chroot_hosts install
-lb chroot_resolv install
-lb chroot_hostname install
-lb chroot_sysv-rc install
-lb chroot_upstart install
-lb chroot_apt install-binary
-lb chroot_archives chroot install
-lb binary_rootfs
-lb binary_manifest
-lb binary_package-lists
-lb binary_linux-image
-lb binary_memtest
-lb binary_grub
-lb binary_grub2
-lb binary_syslinux
-lb binary_disk
-lb binary_loadlin
-lb binary_win32-loader
-lb binary_includes
-lb binary_hooks
-lb binary_checksums
-
-# get vyos build version
-version=$(cat version)
-dateymd=$(date +%Y%m%d)
-
-######################################
-### Prepare the HDD (format, ext.) ###
-######################################
-PARTED=/sbin/parted
-OUTPUT=disk.raw
-OUTPUTVMDK=VyOS-"$dateymd".vmdk
-IMAGE_SIZE=2
-qemu-img create -f raw ${OUTPUT} ${IMAGE_SIZE}G
-
-${PARTED} -s ${OUTPUT} mktable msdos
-${PARTED} -s -a optimal ${OUTPUT} mkpart primary ext4 1Mi 100%
-${PARTED} -s ${OUTPUT} set 1 boot on
-RESULT_KPARTX=`kpartx -asv ${OUTPUT} 2>&1`
-
-if echo "${RESULT_KPARTX}" | grep "^add map" ; then
- LOOP_DEVICE=$(echo ${RESULT_KPARTX} | cut -d" " -f3)
- LOOPRAW_DEVICE=${LOOP_DEVICE%p*}
- echo "kpartx mounted using: ${LOOP_DEVICE} via ${LOOPRAW_DEVICE}"
-else
- echo "It seems kpartx didn't mount the image correctly: exiting."
- exit 1
-fi
-
-cleanup(){
- error=$?
- [ ! -d "${MOUNT_DIR}" ] && return
- if [ "$error" -gt 0 ]; then
- echo
- echo "Error $error"
- else
- echo "Finished."
- fi
-
- set +e
-
- sync
- umount -l ${MOUNT_DIR}
- rmdir ${MOUNT_DIR}
-
- umount devpts-live
- umount proc-live
- umount sysfs-live
-
- dmsetup remove --deferred ${LOOP_DEVICE}
- losetup -d /dev/${LOOPRAW_DEVICE}
- exit $error
-}
-trap "cleanup" EXIT TERM INT
-
-mkfs.ext4 /dev/mapper/${LOOP_DEVICE} -L persistence
-UUID=$(blkid -o value -s UUID /dev/mapper/${LOOP_DEVICE})
-
-# No fsck because of X days without checks
-tune2fs -i 0 /dev/mapper/${LOOP_DEVICE}
-
-MOUNT_DIR=`mktemp -d -t build-debimg.XXXXXX`
-mount /dev/mapper/${LOOP_DEVICE} ${MOUNT_DIR}
-
-########################
-### Setting-up files ###
-########################
-mkdir -p ${MOUNT_DIR}/boot/grub
-mkdir -p ${MOUNT_DIR}/boot/"$version"/rw
-
-echo "/ union" > ${MOUNT_DIR}/persistence.conf
-cp binary/live/filesystem.squashfs ${MOUNT_DIR}/boot/"$version"/"$version.squashfs"
-cp binary/live/initrd.img ${MOUNT_DIR}/boot/"$version"/initrd.img
-cp binary/live/vmlinuz ${MOUNT_DIR}/boot/"$version"/vmlinuz
-
-########################
-### Create grub menu ###
-########################
-cat > ${MOUNT_DIR}/boot/grub/grub.cfg << EOF
-set timeout=5
-set default=0
-
-menuentry "VyOS (KVM console)" {
- linux /boot/"$version"/vmlinuz boot=live quiet vyos-union=/boot/"$version" console=ttyS0,115200 console=tty0 systemd.show_status=true
- initrd /boot/"$version"/initrd.img
-}
-
-menuentry "Lost password change (KVM console)" {
- linux /boot/"$version"/vmlinuz boot=live vyos-union=/boot/"$version" console=ttyS0,115200 console=tty0 systemd.show_status=true init=/opt/vyatta/sbin/standalone_root_pw_reset
- initrd /boot/"$version"/initrd.img
-}
-
-menuentry "VyOS $version (Serial console)" {
- linux /boot/"$version"/vmlinuz boot=live vyos-union=/boot/"$version" console=tty0 console=ttyS0,115200n8d consoleblank=0 systemd.show_status=true
- initrd /boot/"$version"/initrd.img
-}
-
-menuentry "Lost password change $version (Serial console)" {
- linux /boot/"$version"/vmlinuz boot=live vyos-union=/boot/"$version" console=tty0 console=ttyS0,115200n8d consoleblank=0 systemd.show_status=true init=/opt/vyatta/sbin/standalone_root_pw_reset
- initrd /boot/"$version"/initrd.img
-}
-EOF
-
-
-#############################
-### Setting-up bootloader ###
-#############################
-grub-install --boot-directory ${MOUNT_DIR}/boot --force --no-floppy --skip-fs-probe /dev/${LOOPRAW_DEVICE}
-
-###################
-### HOOK SCRIPT ###
-###################
-fstrim ${MOUNT_DIR}
-sync
-
-qemu-img convert -f raw ${OUTPUT} -O vmdk -o adapter_type=lsilogic ${OUTPUTVMDK}
-rm ${OUTPUT}
-
-vmdk=vyos_vmware_image.vmdk
-ovf=vyos_vmware_image.ovf
-vmdk-convert ${OUTPUTVMDK} ${vmdk}
-
-# Generate OVF
-echo 'Generating OVF file...'
-vmdk_file_size=$(du --bytes ${vmdk} | cut -f1)
-vmdk_populated_size=$(vmdk-convert -i ${vmdk} | jq .used)
-sed ../scripts/template.ovf \
- -e "s/{{vmdk_file_size}}/${vmdk_file_size}/" \
- -e "s/{{vmdk_populated_size}}/${vmdk_populated_size}/" \
- -e "s/{{version}}/${version}/" \
- > ${ovf}
-
-# Generate manifest file
-openssl sha1 *.vmdk *.ovf > vyos_vmware_image.mf
-
-# Convert the OVF to signed OVA...
-echo 'Converting the OVF to signed OVA...'
-private_key=${PRIVATE_KEY_PATH:-"../key/privatekey.pem"}
-if [ ! -f ${private_key} ]; then
- echo 'Please put your key to "key/privatekey.pem" in repository root, or set PRIVATE_KEY_PATH to environment variables.'
- exit 1
-fi
-ovftool --privateKey=${private_key} vyos_vmware_image.ovf vyos_vmware_image-signed.ova
-#ovftool vyos_vmware_image.ovf vyos_vmware_image-signed.ova
-
-# Convert the OVF to signed OVF...
-echo 'Converting the OVF to signed OVF...'
-ovftool --privateKey=${private_key} vyos_vmware_image.ovf vyos_vmware_image-signed.ovf
-#ovftool vyos_vmware_image.ovf vyos_vmware_image-signed.ovf