test: add vm image for ubuntu-desktop.

This commit is contained in:
Alexandre Pujol 2023-07-18 22:23:47 +01:00
parent 3393d8f649
commit cc3b76d7a4
No known key found for this signature in database
GPG Key ID: C5469996F0DF68EC
4 changed files with 116 additions and 0 deletions

View File

@ -14,6 +14,12 @@ boxes:
ram: '6144'
cpu: '6'
- name: ubuntu-desktop
box: aa-ubuntu-desktop
uefi: true
ram: '6144'
cpu: '6'
- name: ubuntu-server
box: aa-ubuntu-server
uefi: true

View File

@ -0,0 +1,73 @@
#cloud-config
# Based on https://github.com/canonical/autoinstall-desktop
hostname: ${hostname}
locale: en_IE
keyboard:
layout: ie
ssh_pwauth: true
users:
- name: ${username}
plain_text_passwd: ${password}
shell: /bin/bash
ssh_authorized_keys:
- ${ssh_key}
lock_passwd: false
sudo: ALL=(ALL) NOPASSWD:ALL
package_update: true
package_upgrade: true
package_reboot_if_required: false
packages:
- ubuntu-desktop
- linux-generic-hwe-22.04
- qemu-guest-agent
- spice-vdagent
- terminator
- apparmor-profiles
- build-essential
- config-package-dev
- debhelper
- devscripts
- golang-go
- rsync
snap:
commands:
- install firefox
- install gnome-3-38-2004
- install gtk-common-themes
- install snap-store
- install snapd-desktop-integration
runcmd:
# Let NetworkManager handle network
- rm /etc/netplan/*
- >-
printf "network:\n version: 2\n renderer: NetworkManager" > /etc/netplan/01-network-manager.yaml
# Remove default filesystem and related tools not used with the suggested
# storage layout. These may yet be required if different partitioning schemes
# are used.
- apt-get -y remove btrfs-progs cryptsetup* lvm2 xfsprogs
# Remove other packages present by default in Ubuntu Server but not
# normally present in Ubuntu Desktop.
- >-
apt-get -y remove
ubuntu-server ubuntu-server-minimal
binutils byobu curl dmeventd finalrd gawk
kpartx mdadm ncurses-term needrestart open-iscsi
sg3-utils ssh-import-id sssd thin-provisioning-tools tmux
sosreport screen open-vm-tools motd-news-config lxd-agent-loader
landscape-common fonts-ubuntu-console ethtool
# Keep cloud-init, as it performs some of the installation on first boot.
- apt-get -y install cloud-init
# Finally, remove things only installed as dependencies of other things
# we have already removed.
- apt-get -y autoremove

View File

@ -8,6 +8,7 @@ build {
"source.qemu.archlinux-kde",
"source.qemu.debian-server",
"source.qemu.opensuse-kde",
"source.qemu.ubuntu-desktop",
"source.qemu.ubuntu-server",
]

View File

@ -37,3 +37,39 @@ source "qemu" "ubuntu-server" {
)
}
}
source "qemu" "ubuntu-desktop" {
disk_image = true
iso_url = "https://cloud-images.ubuntu.com/${var.release.ubuntu.codename}/current/${var.release.ubuntu.codename}-server-cloudimg-amd64.img"
iso_checksum = "file:https://cloud-images.ubuntu.com/${var.release.ubuntu.codename}/current/SHA256SUMS"
iso_target_path = "${var.iso_dir}/ubuntu-cloudimg-amd64.img"
cpus = 6
memory = 4096
disk_size = "40G"
accelerator = "kvm"
headless = true
ssh_username = "${var.username}"
ssh_password = "${var.password}"
ssh_port = 22
ssh_wait_timeout = "10000s"
disk_compression = true
disk_detect_zeroes = "unmap"
disk_discard = "unmap"
output_directory = "${var.output}/"
vm_name = "${var.prefix}${source.name}.qcow2"
boot_wait = "10s"
firmware = "${var.firmware}"
shutdown_command = "echo ${var.password} | sudo -S /sbin/shutdown -hP now"
cd_label = "cidata"
cd_content = {
"meta-data" = ""
"user-data" = templatefile("${path.cwd}/packer/init/${source.name}.user-data.yml",
{
username = "${var.username}"
password = "${var.password}"
ssh_key = file("${var.ssh_publickey}")
hostname = "${var.prefix}${source.name}"
}
)
}
}