freebsd-dev/release/tools/azure.conf
Li-Wen Hsu c711f3b453
release/azure: Don't use azure-agent deprovision to build image
Deprovision feature of waagent is used for preparing to capture a
running VM and turn it into a VM image.  Using it in the process of
building a VM image from scratch will cause some side effects such as
the hostname of the building host getting reset.

Remove calling the deprovision command and use a simpler way to fulfill
the requirements of the Azure VM image.

Sponsored by:	The FreeBSD Foundation
2022-11-04 03:17:43 +08:00

61 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() {
mount -t devfs devfs ${DESTDIR}/dev
# 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.
chroot ${DESTDIR} ${EMULATOR} env ASSUME_ALWAYS_YES=yes \
/usr/sbin/pkg delete -f -y pkg
rm ${DESTDIR}/var/db/pkg/repo-*.sqlite
chroot ${DESTDIR} ${EMULATOR} pw usermod root -h -
umount ${DESTDIR}/dev
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
}