This Packer template will generate a VHD suitable for use in Hyper-V or Azure.
setup-alpine
to perform an installation to disk.answers
file is served using Packer's built-in HTTP server.hvtools
package and enables the hv_kvp_daemon
service so Hyper-V can detect the VM is running and retrieve its IP address. (Read more about Hyper-V Integration Services.)The Packer provisioning step performs the following actions in order to prepare a proper Azure image:
sudo
and bash
shadow
package (for useradd
)ssh
client interval to 180The template also installs a custom useradd
script (in /usr/local/sbin
) that changes the behavior of adding password-less accounts (i.e. accounts that log in using SSH keys). By default useradd
locks the password-less account, preventing it from logging in. The custom script forces an illegal password, so that the password cannot be used to log in, but leaves the account unlocked so it can be access via SSH.
qemu
Check out the packer-qemu
branch for a WIP version that builds the Alpine image using qemu
, allowing you to generate the image from a Linux machine.
Detailed docs TBD, but the Windows instructions below should help.
The commands need to be run from an elevated PowerShell prompt so that they can interact with Hyper-V.
First run the template. This will generate a VHDX file locally, in output-hyperv-iso
.
packer build alpinehv.json
To use the image in Azure, you need to convert the image to VHD using convert.ps1
.
The deploy.cmd
script will upload the VHD to Azure and start a VM based on the image. Please amend the script variables as necessary.
Once the VM is started, you can log on via ssh
and make any additional changes. Then deprovision the VM to get it ready to be used as an image:
waagent -deprovision
Finally, makeimage.cmd
will deallocate the VM, capture it as an image, and start another VM based on that image.
iptables
error messages