# Ansible Arch Linux Libvirt Lab This playbook is intended to help automate the deployment of Arch Linux guests to libvirt on localhost. This exists mainly as an excercise while I teach myself ansible, and is mostly a reimplementation of this article: https://www.redhat.com/sysadmin/build-VM-fast-ansible ## TODO - Usage of `virt-customize` doesn't fully work on this image. - Root password does get changed, but hostname remains unchanged. - Move to using `cloud-init` as shown in the Arch Wiki articles linked in the [arch-boxes](https://gitlab.archlinux.org/archlinux/arch-boxes/) readme. - Maybe also lock the root and default user accounts [as suggested on the `cloud-init` Arch Wiki page](https://wiki.archlinux.org/title/Cloud-init#Default_user_configuration) - Install and enable QEMU Guest Agent on new guest to allow immediate access to new VM via `community.libvirt.libvirt` ansible module - Minimize/generalize the VM template XML as much as possible. - Currently, the XML is only slightly modified from one generated by `virt-manager`, so may include lots of unnecessary faff. - Have had issues (already fixed) with the OS Type specification making `virt-manager` unhappy when trying to access new VMs created by this playbook. It's possible this issue might crop up again in the future. - Would like to retain the ability to generate VMs that are usable via `virt-manager` - Maybe create a second ultra-minimal XML template for VMs that won't be used with `virt-manager`? - Add checksum verification for downloaded sources. - Will require some more fiddling than what the source article suggests due to Arch's release schedule. - More documentation ## Contributing As always, patches and issues welcome!