cloud: add image variant for Azure

Extend cloud base image and customize for Azure:

1. Don't install QEMU guest agent

2. Install WALinuxAgent

3. Configure chrony to use virtual PHC

4. Configure sshd with ClientAliveTimeout 120 to prevent
   ssh timeouts

Performed some basic tests by generating an image with:

1. Using QEMU (using direct kernel boot) with
   Fedora-Server-netinst-x86_64-36-1.5.iso and a flattened
   kickstart with poweroff instead of reboot

2. Converted QCOW2 to VHD using:
   qemu-img convert -o subformat=fixed,force_size -O vpc ...

3. Uploading image and created VM, verifying:

  - cloud-init configures system

  - chrony using PTP configuration

  - waagent service installed (but not running until presets
    are approved)

  - SSH configuration and functional

Signed-off-by: Chris Patterson <cpatterson@microsoft.com>
This commit is contained in:
Chris Patterson 2022-08-02 10:20:18 -04:00
parent 6d741ddcf0
commit 1dc8e59de1

View File

@ -0,0 +1,24 @@
# This is a basic Fedora cloud spin designed to work with Azure.
# Inherit from cloud base
%include fedora-cloud-base.ks
%packages
# Fedora Cloud Base includes the qemu guest agent and it is not
# required for Azure: https://pagure.io/cloud-sig/issue/319
-qemu-guest-agent
WALinuxAgent
%end
%post --erroronfail
cat > /etc/ssh/sshd_config.d/50-client-alive-interval.conf << EOF
ClientAliveInterval 120
EOF
cat >> /etc/chrony.conf << EOF
# Azure's virtual time source:
# https://docs.microsoft.com/en-us/azure/virtual-machines/linux/time-sync#check-for-ptp-clock-source
refclock PHC /dev/ptp_hyperv poll 3 dpoll -2 offset 0
EOF
%end