mirror of
https://github.com/roddhjav/apparmor.d.git
synced 2024-12-25 06:27:49 +01:00
tests(packer): update & cleanup tests images.
This commit is contained in:
parent
a5cafe26ea
commit
03b777340d
12 changed files with 202 additions and 292 deletions
|
@ -21,7 +21,7 @@ $(BASE):
|
|||
@make --directory=../ package dist=${@}
|
||||
@packer build -force -var version=${VERSION} \
|
||||
-var disk_size=${disk} -var flavor="${flavor}" \
|
||||
-only=qemu.${@}-${flavor} packer/
|
||||
-only=qemu.${@} packer/
|
||||
|
||||
lint:
|
||||
@packer fmt --check packer/
|
||||
|
|
|
@ -2,43 +2,7 @@
|
|||
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
source "qemu" "archlinux-server" {
|
||||
disk_image = true
|
||||
iso_url = "https://geo.mirror.pkgbuild.com/images/latest/Arch-Linux-x86_64-cloudimg.qcow2"
|
||||
iso_checksum = "file:https://geo.mirror.pkgbuild.com/images/latest/Arch-Linux-x86_64-cloudimg.qcow2.SHA256"
|
||||
iso_target_path = "${var.iso_dir}/archlinux-cloudimg-amd64.img"
|
||||
cpu_model = "host"
|
||||
cpus = 6
|
||||
memory = 4096
|
||||
disk_size = "10G"
|
||||
accelerator = "kvm"
|
||||
headless = true
|
||||
ssh_username = var.username
|
||||
ssh_password = var.password
|
||||
ssh_port = 22
|
||||
ssh_wait_timeout = "1000s"
|
||||
disk_compression = true
|
||||
disk_detect_zeroes = "unmap"
|
||||
disk_discard = "unmap"
|
||||
output_directory = var.output
|
||||
vm_name = "${var.prefix}${source.name}.qcow2"
|
||||
boot_wait = "10s"
|
||||
shutdown_command = "echo ${var.password} | sudo -S 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}"
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
source "qemu" "archlinux-gnome" {
|
||||
source "qemu" "archlinux" {
|
||||
disk_image = true
|
||||
iso_url = "https://geo.mirror.pkgbuild.com/images/latest/Arch-Linux-x86_64-cloudimg.qcow2"
|
||||
iso_checksum = "file:https://geo.mirror.pkgbuild.com/images/latest/Arch-Linux-x86_64-cloudimg.qcow2.SHA256"
|
||||
|
@ -57,54 +21,18 @@ source "qemu" "archlinux-gnome" {
|
|||
disk_detect_zeroes = "unmap"
|
||||
disk_discard = "unmap"
|
||||
output_directory = var.output
|
||||
vm_name = "${var.prefix}${source.name}.qcow2"
|
||||
vm_name = "${var.prefix}${source.name}-${var.flavor}.qcow2"
|
||||
boot_wait = "10s"
|
||||
shutdown_command = "echo ${var.password} | sudo -S shutdown -hP now"
|
||||
cd_label = "cidata"
|
||||
cd_content = {
|
||||
"meta-data" = ""
|
||||
"user-data" = templatefile("${path.cwd}/packer/init/${source.name}.user-data.yml",
|
||||
"user-data" = templatefile("${path.cwd}/packer/init/${source.name}-${var.flavor}.user-data.yml",
|
||||
{
|
||||
username = "${var.username}"
|
||||
password = "${var.password}"
|
||||
ssh_key = file("${var.ssh_publickey}")
|
||||
hostname = "${var.prefix}${source.name}"
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
source "qemu" "archlinux-kde" {
|
||||
disk_image = true
|
||||
iso_url = "https://geo.mirror.pkgbuild.com/images/latest/Arch-Linux-x86_64-cloudimg.qcow2"
|
||||
iso_checksum = "file:https://geo.mirror.pkgbuild.com/images/latest/Arch-Linux-x86_64-cloudimg.qcow2.SHA256"
|
||||
iso_target_path = "${var.iso_dir}/archlinux-cloudimg-amd64.img"
|
||||
cpu_model = "host"
|
||||
cpus = 6
|
||||
memory = 4096
|
||||
disk_size = var.disk_size
|
||||
accelerator = "kvm"
|
||||
headless = true
|
||||
ssh_username = var.username
|
||||
ssh_password = var.password
|
||||
ssh_port = 22
|
||||
ssh_wait_timeout = "1000s"
|
||||
disk_compression = true
|
||||
disk_detect_zeroes = "unmap"
|
||||
disk_discard = "unmap"
|
||||
output_directory = var.output
|
||||
vm_name = "${var.prefix}${source.name}.qcow2"
|
||||
boot_wait = "10s"
|
||||
shutdown_command = "echo ${var.password} | sudo -S 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}"
|
||||
hostname = "${var.prefix}${source.name}-${var.flavor}"
|
||||
}
|
||||
)
|
||||
}
|
||||
|
|
|
@ -4,18 +4,12 @@
|
|||
|
||||
build {
|
||||
sources = [
|
||||
"source.qemu.archlinux-gnome",
|
||||
"source.qemu.archlinux-kde",
|
||||
"source.qemu.archlinux-server",
|
||||
"source.qemu.debian-gnome",
|
||||
"source.qemu.debian-kde",
|
||||
"source.qemu.debian-server",
|
||||
"source.qemu.opensuse-gnome",
|
||||
"source.qemu.opensuse-kde",
|
||||
"source.qemu.ubuntu-desktop",
|
||||
"source.qemu.ubuntu-desktop24",
|
||||
"source.qemu.ubuntu-server",
|
||||
"source.qemu.ubuntu-server24",
|
||||
"source.qemu.archlinux",
|
||||
"source.qemu.debian",
|
||||
"source.qemu.fedora",
|
||||
"source.qemu.opensuse",
|
||||
"source.qemu.ubuntu22",
|
||||
"source.qemu.ubuntu24",
|
||||
]
|
||||
|
||||
# Upload local files
|
||||
|
@ -25,26 +19,28 @@ build {
|
|||
}
|
||||
|
||||
provisioner "file" {
|
||||
only = ["qemu.archlinux-gnome", "qemu.archlinux-kde", "qemu.archlinux-server"]
|
||||
only = ["qemu.archlinux"]
|
||||
destination = "/tmp/src/"
|
||||
sources = ["${path.cwd}/../apparmor.d-${var.version}-1-x86_64.pkg.tar.zst"]
|
||||
sources = [
|
||||
"${path.cwd}/../apparmor.d-${var.version}-1-x86_64.pkg.tar.zst",
|
||||
]
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
only = ["qemu.opensuse-*"]
|
||||
only = ["qemu.opensuse"]
|
||||
destination = "/tmp/src/"
|
||||
sources = ["${path.cwd}/../apparmor.d-${var.version}-1.x86_64.rpm"]
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
only = ["qemu.debian-server", "qemu.debian-gnome", "qemu.debian-kde", "qemu.ubuntu-server", "qemu.ubuntu-server24", "qemu.ubuntu-desktop", "qemu.ubuntu-desktop24"]
|
||||
only = ["qemu.debian", "qemu.ubuntu22", "qemu.ubuntu24"]
|
||||
destination = "/tmp/src/"
|
||||
sources = ["${path.cwd}/../apparmor.d_${var.version}-1_amd64.deb"]
|
||||
}
|
||||
|
||||
# Wait for cloud-init to finish
|
||||
provisioner "shell" {
|
||||
except = ["qemu.opensuse-*"]
|
||||
except = ["qemu.opensuse"]
|
||||
execute_command = "echo '${var.password}' | sudo -S sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
inline = [
|
||||
"while [ ! -f /var/lib/cloud/instance/boot-finished ]; do echo 'Waiting for Cloud-Init...'; sleep 20; done",
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
source "qemu" "debian-server" {
|
||||
source "qemu" "debian" {
|
||||
disk_image = true
|
||||
iso_url = "https://cdimage.debian.org/images/cloud/${var.release.debian.codename}/latest/debian-${var.release.debian.version}-genericcloud-amd64.qcow2"
|
||||
iso_checksum = "file:https://cdimage.debian.org/images/cloud/${var.release.debian.codename}/latest/SHA512SUMS"
|
||||
iso_target_path = "${var.iso_dir}/debian-cloudimg-amd64.img"
|
||||
cpu_model = "host"
|
||||
cpus = 4
|
||||
memory = 2048
|
||||
cpus = 6
|
||||
memory = 4096
|
||||
disk_size = var.disk_size
|
||||
accelerator = "kvm"
|
||||
headless = true
|
||||
|
@ -20,89 +20,15 @@ source "qemu" "debian-server" {
|
|||
disk_compression = true
|
||||
disk_detect_zeroes = "unmap"
|
||||
disk_discard = "unmap"
|
||||
output_directory = "${var.output}/"
|
||||
vm_name = "${var.prefix}${source.name}.qcow2"
|
||||
output_directory = var.output
|
||||
vm_name = "${var.prefix}${source.name}-${var.flavor}.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}"
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
source "qemu" "debian-gnome" {
|
||||
disk_image = true
|
||||
iso_url = "https://cdimage.debian.org/images/cloud/${var.release.debian.codename}/latest/debian-${var.release.debian.version}-genericcloud-amd64.qcow2"
|
||||
iso_checksum = "file:https://cdimage.debian.org/images/cloud/${var.release.debian.codename}/latest/SHA512SUMS"
|
||||
iso_target_path = "${var.iso_dir}/debian-cloudimg-amd64.img"
|
||||
cpu_model = "host"
|
||||
cpus = 4
|
||||
memory = 2048
|
||||
disk_size = var.disk_size
|
||||
accelerator = "kvm"
|
||||
headless = true
|
||||
ssh_username = var.username
|
||||
ssh_password = var.password
|
||||
ssh_port = 22
|
||||
ssh_wait_timeout = "1000s"
|
||||
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}"
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
source "qemu" "debian-kde" {
|
||||
disk_image = true
|
||||
iso_url = "https://cdimage.debian.org/images/cloud/${var.release.debian.codename}/latest/debian-${var.release.debian.version}-genericcloud-amd64.qcow2"
|
||||
iso_checksum = "file:https://cdimage.debian.org/images/cloud/${var.release.debian.codename}/latest/SHA512SUMS"
|
||||
iso_target_path = "${var.iso_dir}/debian-cloudimg-amd64.img"
|
||||
cpu_model = "host"
|
||||
cpus = 4
|
||||
memory = 2048
|
||||
disk_size = var.disk_size
|
||||
accelerator = "kvm"
|
||||
headless = true
|
||||
ssh_username = var.username
|
||||
ssh_password = var.password
|
||||
ssh_port = 22
|
||||
ssh_wait_timeout = "1000s"
|
||||
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",
|
||||
"user-data" = templatefile("${path.cwd}/packer/init/${source.name}-${var.flavor}.user-data.yml",
|
||||
{
|
||||
username = "${var.username}"
|
||||
password = "${var.password}"
|
||||
|
|
92
tests/packer/init/archlinux-xfce.user-data.yml
Normal file
92
tests/packer/init/archlinux-xfce.user-data.yml
Normal file
|
@ -0,0 +1,92 @@
|
|||
#cloud-config
|
||||
|
||||
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:
|
||||
# Install core packages
|
||||
- apparmor
|
||||
- base-devel
|
||||
- firewalld
|
||||
- qemu-guest-agent
|
||||
- rng-tools
|
||||
- spice-vdagent
|
||||
|
||||
# Install usefull core packages
|
||||
- bash-completion
|
||||
- git
|
||||
- htop
|
||||
- man
|
||||
- pass
|
||||
- python-notify2
|
||||
- vim
|
||||
- wget
|
||||
|
||||
# Install basic services
|
||||
- networkmanager
|
||||
- cups
|
||||
- cups-pdf
|
||||
- system-config-printer
|
||||
|
||||
# Install Graphical Interface
|
||||
- xfce4
|
||||
- xfce4-goodies
|
||||
- lightdm
|
||||
- lightdm-gtk-greeter
|
||||
|
||||
# Install Applications
|
||||
- firefox
|
||||
- chromium
|
||||
- terminator
|
||||
|
||||
runcmd:
|
||||
# Regenerate grub.cfg
|
||||
- grub-mkconfig -o /boot/grub/grub.cfg
|
||||
|
||||
# Remove swapfile
|
||||
- swapoff -a
|
||||
- rm -rf /swap/
|
||||
- sed -e "/swap/d" -i /etc/fstab
|
||||
|
||||
# Enable core services
|
||||
- systemctl enable apparmor
|
||||
- systemctl enable auditd
|
||||
- systemctl enable lightdm.service
|
||||
- systemctl enable NetworkManager
|
||||
- systemctl enable rngd
|
||||
- systemctl enable avahi-daemon
|
||||
- systemctl enable systemd-timesyncd.service
|
||||
|
||||
write_files:
|
||||
# Enable AppArmor in kernel parameters
|
||||
- path: /etc/default/grub
|
||||
append: true
|
||||
content: |
|
||||
GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT lsm=landlock,lockdown,yama,integrity,apparmor,bpf"
|
||||
|
||||
# Set some bash aliases
|
||||
- path: /etc/skel/.bashrc
|
||||
append: true
|
||||
content: |
|
||||
[[ -f ~/.bash_aliases ]] && source ~/.bash_aliases
|
||||
|
||||
# Setup shared directory
|
||||
- path: /etc/fstab
|
||||
append: true
|
||||
content: |
|
||||
0a31bc478ef8e2461a4b1cc10a24cc4 /home/user/Projects/apparmor.d virtiofs defaults 0 1
|
43
tests/packer/init/opensuse-gnome.user-data.yml
Normal file
43
tests/packer/init/opensuse-gnome.user-data.yml
Normal file
|
@ -0,0 +1,43 @@
|
|||
#cloud-config
|
||||
|
||||
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:
|
||||
- apparmor-profiles
|
||||
- bash-completion
|
||||
- distribution-release
|
||||
- git
|
||||
- golang-packaging
|
||||
- htop
|
||||
- make
|
||||
- rpmbuild
|
||||
- vim
|
||||
|
||||
write_files:
|
||||
# Set some bash aliases
|
||||
- path: /home/${username}/.bashrc
|
||||
append: true
|
||||
content: |
|
||||
[[ -f ~/.bash_aliases ]] && source ~/.bash_aliases
|
||||
|
||||
# Setup shared directory
|
||||
- path: /etc/fstab
|
||||
append: true
|
||||
content: |
|
||||
0a31bc478ef8e2461a4b1cc10a24cc4 /home/user/Projects/apparmor.d virtiofs defaults 0 1
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
# Based on https://github.com/canonical/autoinstall-desktop
|
||||
|
||||
# https://github.com/canonical/ubuntu-desktop-provision/blob/main/README.md
|
||||
|
||||
hostname: ${hostname}
|
||||
locale: en_IE
|
||||
keyboard:
|
||||
|
@ -22,7 +24,7 @@ package_upgrade: true
|
|||
package_reboot_if_required: false
|
||||
packages:
|
||||
- ubuntu-desktop
|
||||
- linux-generic-hwe-22.04
|
||||
- linux-generic-hwe-24.04
|
||||
- qemu-guest-agent
|
||||
- spice-vdagent
|
||||
- terminator
|
||||
|
@ -49,14 +51,14 @@ runcmd:
|
|||
|
||||
# Remove other packages present by default in Ubuntu Server but not
|
||||
# normally present in Ubuntu Desktop.
|
||||
- >-
|
||||
apt-get -y purge
|
||||
ubuntu-server ubuntu-server-minimal netplan.io cloud-init
|
||||
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
|
||||
# - >-
|
||||
# apt-get -y purge
|
||||
# ubuntu-server ubuntu-server-minimal netplan.io cloud-init
|
||||
# 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
|
||||
|
||||
# Finally, remove things only installed as dependencies of other things
|
||||
# we have already removed.
|
|
@ -3,16 +3,13 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
# TODO: Fully automate the creation of the base image
|
||||
# To save some dev time, 'base_opensuse_kde' is manually created from the opensuse iso with:
|
||||
# - KDE
|
||||
# - username/password defined in the variables
|
||||
# - cloud-init installed and enabled
|
||||
|
||||
source "qemu" "opensuse-kde" {
|
||||
source "qemu" "opensuse" {
|
||||
disk_image = true
|
||||
iso_url = "${var.iso_dir}/base_opensuse_kde.qcow2"
|
||||
iso_checksum = "sha256:62a174725bdf26981d15969e53461b89359f7763450cbfd3e258d4035731279b"
|
||||
iso_target_path = "${var.iso_dir}/base_opensuse_kde.qcow2"
|
||||
iso_url = "${var.base_dir}/base-tumbleweed-gnome.qcow2"
|
||||
iso_checksum = "sha256:223ed62160ef4f1a4f21b69c574f552a07eee6ef66cf66eef2b49c5a7c4864f4"
|
||||
iso_target_path = "${var.base_dir}/base-tumbleweed-gnome.qcow2"
|
||||
cpu_model = "host"
|
||||
cpus = 6
|
||||
memory = 4096
|
||||
disk_size = var.disk_size
|
||||
|
@ -25,15 +22,15 @@ source "qemu" "opensuse-kde" {
|
|||
disk_compression = true
|
||||
disk_detect_zeroes = "unmap"
|
||||
disk_discard = "unmap"
|
||||
output_directory = "${var.iso_dir}/packer/"
|
||||
vm_name = "${var.prefix}${source.name}.qcow2"
|
||||
output_directory = var.output
|
||||
vm_name = "${var.prefix}${source.name}-${var.flavor}.qcow2"
|
||||
boot_wait = "10s"
|
||||
firmware = var.firmware
|
||||
shutdown_command = "echo ${var.password} | sudo shutdown -hP now"
|
||||
cd_label = "cidata"
|
||||
cd_content = {
|
||||
"meta-data" = ""
|
||||
"user-data" = templatefile("${path.cwd}/packer/init/${source.name}.user-data.yml",
|
||||
"user-data" = templatefile("${path.cwd}/packer/init/${source.name}-${var.flavor}.user-data.yml",
|
||||
{
|
||||
username = "${var.username}"
|
||||
password = "${var.password}"
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
source "qemu" "ubuntu-server" {
|
||||
source "qemu" "ubuntu22" {
|
||||
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"
|
||||
iso_url = "https://cloud-images.ubuntu.com/${var.release.ubuntu22.codename}/current/${var.release.ubuntu22.codename}-server-cloudimg-amd64.img"
|
||||
iso_checksum = "file:https://cloud-images.ubuntu.com/${var.release.ubuntu22.codename}/current/SHA256SUMS"
|
||||
iso_target_path = "${var.iso_dir}/ubuntu22-cloudimg-amd64.img"
|
||||
cpu_model = "host"
|
||||
cpus = 4
|
||||
memory = 2048
|
||||
cpus = 6
|
||||
memory = 4096
|
||||
disk_size = var.disk_size
|
||||
accelerator = "kvm"
|
||||
headless = true
|
||||
|
@ -20,15 +20,15 @@ source "qemu" "ubuntu-server" {
|
|||
disk_compression = true
|
||||
disk_detect_zeroes = "unmap"
|
||||
disk_discard = "unmap"
|
||||
output_directory = "${var.output}/"
|
||||
vm_name = "${var.prefix}${source.name}.qcow2"
|
||||
output_directory = var.output
|
||||
vm_name = "${var.prefix}${source.name}-${var.flavor}.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",
|
||||
"user-data" = templatefile("${path.cwd}/packer/init/${source.name}-${var.flavor}.user-data.yml",
|
||||
{
|
||||
username = "${var.username}"
|
||||
password = "${var.password}"
|
||||
|
@ -39,14 +39,14 @@ source "qemu" "ubuntu-server" {
|
|||
}
|
||||
}
|
||||
|
||||
source "qemu" "ubuntu-server24" {
|
||||
source "qemu" "ubuntu24" {
|
||||
disk_image = true
|
||||
iso_url = "https://cloud-images.ubuntu.com/${var.release.ubuntu24.codename}/current/${var.release.ubuntu24.codename}-server-cloudimg-amd64.img"
|
||||
iso_checksum = "file:https://cloud-images.ubuntu.com/${var.release.ubuntu24.codename}/current/SHA256SUMS"
|
||||
iso_target_path = "${var.iso_dir}/ubuntu-${var.release.ubuntu24.codename}-cloudimg-amd64.img"
|
||||
iso_target_path = "${var.iso_dir}/ubuntu24-cloudimg-amd64.img"
|
||||
cpu_model = "host"
|
||||
cpus = 4
|
||||
memory = 2048
|
||||
cpus = 6
|
||||
memory = 4096
|
||||
disk_size = var.disk_size
|
||||
accelerator = "kvm"
|
||||
headless = true
|
||||
|
@ -57,89 +57,15 @@ source "qemu" "ubuntu-server24" {
|
|||
disk_compression = true
|
||||
disk_detect_zeroes = "unmap"
|
||||
disk_discard = "unmap"
|
||||
output_directory = "${var.output}/"
|
||||
vm_name = "${var.prefix}${source.name}.qcow2"
|
||||
output_directory = var.output
|
||||
vm_name = "${var.prefix}${source.name}-${var.flavor}.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/ubuntu-server.user-data.yml",
|
||||
{
|
||||
username = "${var.username}"
|
||||
password = "${var.password}"
|
||||
ssh_key = file("${var.ssh_publickey}")
|
||||
hostname = "${var.prefix}${source.name}"
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
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"
|
||||
cpu_model = "host"
|
||||
cpus = 6
|
||||
memory = 4096
|
||||
disk_size = var.disk_size
|
||||
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}"
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
source "qemu" "ubuntu-desktop24" {
|
||||
disk_image = true
|
||||
iso_url = "https://cloud-images.ubuntu.com/${var.release.ubuntu24.codename}/current/${var.release.ubuntu24.codename}-server-cloudimg-amd64.img"
|
||||
iso_checksum = "file:https://cloud-images.ubuntu.com/${var.release.ubuntu24.codename}/current/SHA256SUMS"
|
||||
iso_target_path = "${var.iso_dir}/ubuntu-${var.release.ubuntu24.codename}-cloudimg-amd64.img"
|
||||
cpu_model = "host"
|
||||
cpus = 6
|
||||
memory = 4096
|
||||
disk_size = var.disk_size
|
||||
accelerator = "kvm"
|
||||
headless = false
|
||||
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",
|
||||
"user-data" = templatefile("${path.cwd}/packer/init/${source.name}-${var.flavor}.user-data.yml",
|
||||
{
|
||||
username = "${var.username}"
|
||||
password = "${var.password}"
|
||||
|
|
|
@ -22,12 +22,6 @@ variable "ssh_publickey" {
|
|||
default = "~/.ssh/id_ed25519.pub"
|
||||
}
|
||||
|
||||
variable "ssh_privatekey" {
|
||||
description = "Path to the ssh private key"
|
||||
type = string
|
||||
default = "~/.ssh/id_ed25519"
|
||||
}
|
||||
|
||||
variable "disk_size" {
|
||||
description = "Disk size of the VM to build"
|
||||
type = string
|
||||
|
@ -49,7 +43,7 @@ variable "base_dir" {
|
|||
variable "firmware" {
|
||||
description = "Path to the UEFI firmware"
|
||||
type = string
|
||||
default = "/usr/share/edk2-ovmf/x64/OVMF_CODE.fd"
|
||||
default = "/usr/share/edk2/x64/OVMF_CODE.fd"
|
||||
}
|
||||
|
||||
variable "output" {
|
||||
|
@ -83,7 +77,7 @@ variable "release" {
|
|||
version = string
|
||||
}))
|
||||
default = {
|
||||
"ubuntu" : {
|
||||
"ubuntu22" : {
|
||||
codename = "jammy",
|
||||
version = "22.04.2",
|
||||
},
|
||||
|
@ -99,5 +93,11 @@ variable "release" {
|
|||
codename = "tumbleweed",
|
||||
version = "",
|
||||
}
|
||||
"fedora" : {
|
||||
codename = "40",
|
||||
version = "1.14",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue