Now with Ubuntu support

This commit is contained in:
Greg Hellings
2023-08-11 09:55:32 -05:00
parent d50446dec3
commit c46b459a85
11 changed files with 178 additions and 52 deletions
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env xonsh
$RAISE_SUBPROC_ERROR = True
from pathlib import Path
import sys
self = Path(__file__).absolute()
base = self.parent.parent.parent.parent
source @(base / "test.xsh")
opts = get_parser(sys.argv[1:])
cd @(str(base))
for provider in opts["providers"]:
packer build -var=@(opts["headless"]) -var-file=@(self.parent / "x86_64.pkrvars.hcl") @(opts["upload"]) -only=@(provider) @(base / "sources")
@@ -1,18 +0,0 @@
distro = "ubuntu"
version = "18.04"
iso = {
url = "http://cdimage.ubuntu.com/ubuntu/releases/18.04/release/ubuntu-18.04.6-server-amd64.iso"
checksum = "f5cbb8104348f0097a8e513b10173a07dbc6684595e331cb06f93f385d0aecf6"
}
boot_command = [
"<esc><wait1>",
"<f6><esc><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"auto=true priority=critical ",
"locale=en_US.UTF-8 ",
"DEBIAN_FRONTEND=text ",
"preseed/url=http://{{.HTTPIP}}:{{.HTTPPort}}/ubuntu/18.04/preseed.cfg ",
"fsck.mode=skip ",
"console=ttyS0 ",
"console=tty0 ",
"<enter><wait1>"
]
+97
View File
@@ -0,0 +1,97 @@
distro = "ubuntu"
version = "18.04"
iso = {
url = "http://cdimage.ubuntu.com/ubuntu/releases/18.04/release/ubuntu-18.04.6-server-amd64.iso"
checksum = "f5cbb8104348f0097a8e513b10173a07dbc6684595e331cb06f93f385d0aecf6"
}
boot_command = [
"<esc><wait1>",
"<f6><esc><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"auto=true priority=critical ",
"locale=en_US.UTF-8 ",
"DEBIAN_FRONTEND=text ",
"preseed/url=http://{{.HTTPIP}}:{{.HTTPPort}}/preseed.cfg ",
"fsck.mode=skip ",
"console=tty0 ",
"--- net.ifnames=0 biosdevnames=0 ",
"<enter><wait1>"
]
http_files = {
"/preseed.cfg" = <<HEREDOC
d-i debian-installer/locale string C.UTF-8
d-i keyboard-configuration/xkb-keymap select us
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/model select USA
d-i keyboard-configuration/layout select USA
d-i keyboard-configuration/variant select USA
d-i preseed/early_command string ln -s /dev/sda /dev/vda || :
d-i grub-installer/bootdev string /dev/vda
d-i netcfg/choose_interface select auto
d-i mirror/http/mirror select us.archive.ubuntu.com
d-i mirror/http/proxy string
d-i time/zone string UTC
d-i clock-setup/utc boolean true
d-i clock-setup/utc-auto boolean true
d-i debian-installer/missing-provide select $\{DEFAULT}
d-i partman-auto/method string regular
d-i partman-auto/expert_recipe string \
scheme :: \
200 0 200 ext4 \
$primary{ } \
$bootable{ } \
method{ format } \
format{ } \
use_filesystem{ } \
filesystem{ ext4 } \
mountpoint{ /boot } . \
200% 0 200% linux-swap \
$primary{ } \
method{ swap } \
format{ } . \
1 0 -1 ext4 \
$primary{ } \
method{ format } \
format{ } \
use_filesystem{ } \
filesystem{ ext4 } \
mountpoint{ / } .
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i base-installer/excludes string laptop-detect
d-i passwd/root-password-again password vagrant
d-i passwd/root-password password vagrant
d-i passwd/user-fullname string vagrant
d-i passwd/username string vagrant
d-i passwd/user-password password vagrant
d-i passwd/user-password-again password vagrant
d-i user-setup/allow-password-weak boolean true
d-i pkgsel/include string curl openssh-server sudo
d-i pkgsel/language-packs multiselect
d-i pkgsel/upgrade select full-upgrade
d-i pkgsel/update-policy select none
tasksel tasksel/first multiselect ubuntu-server
d-i finish-install/reboot_in_progress note
d-i preseed/late_command string \
echo 'Defaults:vagrant !requiretty' > /target/etc/sudoers.d/vagrant; \
echo 'vagrant ALL=(ALL) NOPASSWD: ALL' >> /target/etc/sudoers.d/vagrant; \
chmod 440 /target/etc/sudoers.d/vagrant; \
in-target update-initramfs -u
HEREDOC
}
@@ -1,17 +0,0 @@
distro = "ubuntu"
version = "20.04"
iso = {
url = "https://releases.ubuntu.com/20.04/ubuntu-20.04.6-live-server-amd64.iso"
checksum = "b8f31413336b9393ad5d8ef0282717b2ab19f007df2e9ed5196c13d8f9153c8b"
}
boot_wait = "3s"
boot_command = [
"<enter><enter><wait1><f6><esc><wait><bs><bs><bs><bs>",
"console=ttyS0 ",
"console=tty0 ",
"fsck.mode=skip ",
"locale=en_US ",
"auto=true ",
"priority=critical ",
"autoinstall ds=nocloud-net;s=http://{{.HTTPIP}}:{{.HTTPPort}}/ubuntu/20.04/<enter><wait>"
]
+62
View File
@@ -0,0 +1,62 @@
distro = "ubuntu"
version = "20.04"
iso = {
url = "https://releases.ubuntu.com/20.04/ubuntu-20.04.6-live-server-amd64.iso"
checksum = "b8f31413336b9393ad5d8ef0282717b2ab19f007df2e9ed5196c13d8f9153c8b"
}
boot_wait = "3s"
boot_command = [
"<enter><enter><wait1><f6><esc><wait><bs><bs><bs><bs>",
"console=tty0 ",
"fsck.mode=skip ",
"locale=en_US ",
"auto=true ",
"priority=critical ",
"autoinstall ds=nocloud<enter><wait>"
]
cd_files = {
"/meta-data" = ""
"/user-data" = <<HEREDOC
#cloud-config
# vim: set ft=yaml:
autoinstall:
version: 1
network: # Should disable networking, workaround for unattended-updates failing in install
version: 2
ethernets:
eth0:
match:
name: e*
dhcp4: yes
dhcp6: no
refresh-installer:
update: no
keyboard:
layout: us
toggle: null
variant: ''
locale: en_US.UTF-8
identity:
hostname: vagrant
username: vagrant
password: $6$rounds=4096$mJTRlY/vwPMquLe0$s4Ld3ZnvF.pM86xzbAgQD7Xpi/NMVgyQNb5CEfabFgL6nLRsP56WtwA.o.Jg/xC6HaJmM2p5fCGIo37jmKVRI0
ssh:
install-server: yes
authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
allow-pw: yes
user-data:
disable_root: false
package_update: false # These will be done by Ansible after install
package_upgrade: false
late-commands:
- echo 'Defaults:vagrant !requiretty' > /target/etc/sudoers.d/vagrant
- echo 'vagrant ALL=(ALL) NOPASSWD:ALL' >> /target/etc/sudoers.d/vagrant
- chmod 440 /target/etc/sudoers.d/vagrant
- curtin in-target --target=/target -- logger "finished late-commands"
packages:
- ca-certificates
- curl
- sudo
HEREDOC
}
@@ -1,15 +0,0 @@
distro = "ubuntu"
version = "22.04"
iso = {
url = "https://releases.ubuntu.com/jammy/ubuntu-22.04.2-live-server-amd64.iso"
checksum = "5e38b55d57d94ff029719342357325ed3bda38fa80054f9330dc789cd2d43931"
}
boot_command = [
"e<down><down><down><end><bs><bs><bs>",
"fsck.mode=skip ",
"net.ifnames=0 biosdevnames=0 ",
"locale=en_US ",
"auto=true ",
"priority=critical ",
"autoinstall ds=\"nocloud-net;s=http://{{.HTTPIP}}:{{.HTTPPort}}/ubuntu/22.04/\" console=tty0<F10> ",
]
+62
View File
@@ -0,0 +1,62 @@
distro = "ubuntu"
version = "22.04"
iso = {
url = "https://releases.ubuntu.com/22.04/ubuntu-22.04.3-live-server-amd64.iso"
checksum = "a4acfda10b18da50e2ec50ccaf860d7f20b389df8765611142305c0e911d16fd"
}
boot_command = [
"e<down><down><down><end><bs><bs><bs>",
"console=tty0 ",
"fsck.mode=skip ",
"locale=en_US ",
"auto=true ",
"priority=critical ",
"autoinstall",
"<F10>",
]
cd_files = {
"/meta-data" = ""
"/user-data" = <<HEREDOC
#cloud-config
# vim: set ft=yaml:
autoinstall:
version: 1
network: # Should disable networking, workaround for unattended-updates failing in install
version: 2
ethernets:
eth0:
match:
name: e*
dhcp4: yes
dhcp6: no
refresh-installer:
update: no
keyboard:
layout: us
toggle: null
variant: ''
locale: en_US.UTF-8
identity:
hostname: vagrant
username: vagrant
password: $6$rounds=4096$mJTRlY/vwPMquLe0$s4Ld3ZnvF.pM86xzbAgQD7Xpi/NMVgyQNb5CEfabFgL6nLRsP56WtwA.o.Jg/xC6HaJmM2p5fCGIo37jmKVRI0
ssh:
install-server: yes
authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
allow-pw: yes
user-data:
disable_root: false
package_update: false
package_upgrade: false
late-commands:
- echo 'Defaults:vagrant !requiretty' > /target/etc/sudoers.d/vagrant
- echo 'vagrant ALL=(ALL) NOPASSWD:ALL' >> /target/etc/sudoers.d/vagrant
- chmod 440 /target/etc/sudoers.d/vagrant
- curtin in-target --target=/target -- logger "finished late-commands"
packages:
- ca-certificates
- curl
- sudo
HEREDOC
}
+15
View File
@@ -0,0 +1,15 @@
18.04:
- arch: x86_64
provider: qemu
- arch: x86_64
provider: virtualbox-iso
20.04:
- arch: x86_64
provider: qemu
- arch: x86_64
provider: virtualbox-iso
22.04:
- arch: x86_64
provider: qemu
- arch: x86_64
provider: virtualbox-iso