fbece76095
Imports the changes for building official images on Azure Marketplace, which fulfill the requirements of Azure and FreeBSD cloud images like disk layout and UEFI for Gen2 VM, along with some minor improvements like configurations to speed up booting. "CLOUDWARE" list will be updated after some more collaborations with re completed. Reviewed by: re (gjb) Sponsored by: The FreeBSD Foundation Technical assistance from: Microsoft Differential Revision: https://reviews.freebsd.org/D23804
59 lines
1.6 KiB
Bash
59 lines
1.6 KiB
Bash
#!/bin/sh
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
# Convention of Linux type VM on Azure is 30G
|
|
export VMSIZE=30g
|
|
|
|
# Set to a list of packages to install.
|
|
export VM_EXTRA_PACKAGES="azure-agent python python3 firstboot-freebsd-update firstboot-pkgs"
|
|
|
|
# Set to a list of third-party software to enable in rc.conf(5).
|
|
export VM_RC_LIST="ntpd sshd waagent firstboot_freebsd_update firstboot_pkgs"
|
|
|
|
# No swap space; waagent will allocate swap space on the resource disk.
|
|
# See ResourceDisk.EnableSwap and ResourceDisk.SwapSizeMB in waagent.conf
|
|
export NOSWAP=YES
|
|
|
|
# https://docs.microsoft.com/en-us/azure/marketplace/azure-vm-create-certification-faq#vm-images-must-have-1mb-free-space
|
|
export VM_BOOTPARTSOFFSET=1M
|
|
|
|
vm_extra_pre_umount() {
|
|
# The firstboot_pkgs rc.d script will download the repository
|
|
# catalogue and install or update pkg when the instance first
|
|
# launches, so these files would just be replaced anyway; removing
|
|
# them from the image allows it to boot faster.
|
|
mount -t devfs devfs ${DESTDIR}/dev
|
|
chroot ${DESTDIR} ${EMULATOR} env ASSUME_ALWAYS_YES=yes \
|
|
/usr/sbin/pkg delete -f -y pkg
|
|
umount ${DESTDIR}/dev
|
|
rm ${DESTDIR}/var/db/pkg/repo-*.sqlite
|
|
|
|
yes | chroot ${DESTDIR} ${EMULATOR} /usr/local/sbin/waagent -deprovision
|
|
|
|
cat << EOF >> ${DESTDIR}/etc/rc.conf
|
|
ifconfig_hn0="SYNCDHCP"
|
|
ntpd_sync_on_start="YES"
|
|
EOF
|
|
|
|
cat << EOF >> ${DESTDIR}/boot/loader.conf
|
|
autoboot_delay="-1"
|
|
beastie_disable="YES"
|
|
loader_logo="none"
|
|
hw.memtest.tests="0"
|
|
console="comconsole efi vidconsole"
|
|
comconsole_speed="115200"
|
|
boot_multicons="YES"
|
|
boot_serial="YES"
|
|
mlx4en_load="YES"
|
|
mlx5en_load="YES"
|
|
EOF
|
|
|
|
touch ${DESTDIR}/firstboot
|
|
|
|
rm -f ${DESTDIR}/etc/resolv.conf
|
|
|
|
return 0
|
|
}
|