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>"
|
|
||||||
]
|
|
||||||
@@ -1,3 +1,23 @@
|
|||||||
|
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 debian-installer/locale string C.UTF-8
|
||||||
d-i keyboard-configuration/xkb-keymap select us
|
d-i keyboard-configuration/xkb-keymap select us
|
||||||
|
|
||||||
@@ -21,7 +41,7 @@ d-i time/zone string UTC
|
|||||||
d-i clock-setup/utc boolean true
|
d-i clock-setup/utc boolean true
|
||||||
d-i clock-setup/utc-auto boolean true
|
d-i clock-setup/utc-auto boolean true
|
||||||
|
|
||||||
d-i debian-installer/missing-provide select ${DEFAULT}
|
d-i debian-installer/missing-provide select $\{DEFAULT}
|
||||||
|
|
||||||
d-i partman-auto/method string regular
|
d-i partman-auto/method string regular
|
||||||
d-i partman-auto/expert_recipe string \
|
d-i partman-auto/expert_recipe string \
|
||||||
@@ -73,3 +93,5 @@ d-i preseed/late_command string \
|
|||||||
echo 'vagrant ALL=(ALL) NOPASSWD: ALL' >> /target/etc/sudoers.d/vagrant; \
|
echo 'vagrant ALL=(ALL) NOPASSWD: ALL' >> /target/etc/sudoers.d/vagrant; \
|
||||||
chmod 440 /target/etc/sudoers.d/vagrant; \
|
chmod 440 /target/etc/sudoers.d/vagrant; \
|
||||||
in-target update-initramfs -u
|
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
|
||||||
@@ -23,7 +23,8 @@ source "virtualbox-iso" "x86_64" {
|
|||||||
guest_additions_sha256 = "bbabd89b8fff38a257bab039a278f0c4dc4426eff6e4238c1db01edb7284186a"
|
guest_additions_sha256 = "bbabd89b8fff38a257bab039a278f0c4dc4426eff6e4238c1db01edb7284186a"
|
||||||
vboxmanage = [
|
vboxmanage = [
|
||||||
["modifyvm", "{{ .Name }}", "--uart1", "0x3F8", "4"],
|
["modifyvm", "{{ .Name }}", "--uart1", "0x3F8", "4"],
|
||||||
["modifyvm", "{{ .Name }}", "--uartmode1", "file", "serial-output-virtualbox-${var.arch}-${var.distro}-${var.version}"]
|
["modifyvm", "{{ .Name }}", "--uartmode1", "file", "serial-output-virtualbox-${var.arch}-${var.distro}-${var.version}"],
|
||||||
|
["modifyvm", "{{ .Name }}", "--nat-localhostreachable1", "on"],
|
||||||
]
|
]
|
||||||
|
|
||||||
http_content = var.http_files
|
http_content = var.http_files
|
||||||
|
|||||||
Reference in New Issue
Block a user