Now with Ubuntu support
This commit is contained in:
Executable
+14
@@ -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>"
|
||||
]
|
||||
@@ -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>"
|
||||
]
|
||||
@@ -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> ",
|
||||
]
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user