Tidy up several things in build files (#3)
Change from QCow2 to Raw images Update boot options for better outputs Add SSH host key acceptance files Change Ubuntu builder to Ubuntu 22
This commit is contained in:
@@ -6,6 +6,7 @@ name: Build the boxes
|
|||||||
types:
|
types:
|
||||||
- published
|
- published
|
||||||
- prereleased
|
- prereleased
|
||||||
|
pull_request:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
collect:
|
collect:
|
||||||
@@ -24,7 +25,7 @@ jobs:
|
|||||||
|
|
||||||
build:
|
build:
|
||||||
name: Build box
|
name: Build box
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-22.04
|
||||||
needs:
|
needs:
|
||||||
- collect
|
- collect
|
||||||
strategy:
|
strategy:
|
||||||
|
|||||||
@@ -6,5 +6,5 @@ iso = {
|
|||||||
}
|
}
|
||||||
boot_command = [
|
boot_command = [
|
||||||
"<tab><bs><bs><bs><bs><bs>",
|
"<tab><bs><bs><bs><bs><bs>",
|
||||||
"net.ifnames=0 biosdevnames=0 inst.ks=http://{{.HTTPIP}}:{{.HTTPPort}}/fedora/34-x86_64.ks console=ttyS0<enter><wait>"
|
"net.ifnames=0 biosdevnames=0 inst.ks=http://{{.HTTPIP}}:{{.HTTPPort}}/fedora/34-x86_64.ks console=ttyS0 <enter><wait>"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -6,5 +6,5 @@ iso = {
|
|||||||
}
|
}
|
||||||
boot_command = [
|
boot_command = [
|
||||||
"<up><tab><bs><bs><bs><bs><bs>",
|
"<up><tab><bs><bs><bs><bs><bs>",
|
||||||
"edd=off net.ifnames=0 biosdevnames=0 inst.ks=http://{{.HTTPIP}}:{{.HTTPPort}}/fedora/35-x86_64.ks console=ttyS0<enter><wait>"
|
"net.ifnames=0 biosdevnames=0 inst.ks=http://{{.HTTPIP}}:{{.HTTPPort}}/fedora/35-x86_64.ks console=ttyS0 <enter><wait>"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -6,5 +6,5 @@ iso = {
|
|||||||
}
|
}
|
||||||
boot_command = [
|
boot_command = [
|
||||||
"<up><tab><bs><bs><bs><bs><bs>",
|
"<up><tab><bs><bs><bs><bs><bs>",
|
||||||
"edd=off net.ifnames=0 biosdevnames=0 inst.ks=http://{{.HTTPIP}}:{{.HTTPPort}}/fedora/36-x86_64.ks console=ttyS0<enter><wait>"
|
"net.ifnames=0 biosdevnames=0 inst.ks=http://{{.HTTPIP}}:{{.HTTPPort}}/fedora/36-x86_64.ks console=ttyS0 <enter><wait>"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ iso = {
|
|||||||
}
|
}
|
||||||
boot_command = [
|
boot_command = [
|
||||||
"<up><tab><bs><bs><bs><bs><bs>",
|
"<up><tab><bs><bs><bs><bs><bs>",
|
||||||
"edd=off net.ifnames=0 biosdevnames=0 inst.ks=http://{{.HTTPIP}}:{{.HTTPPort}}/fedora/rawhide-x86_64.ks console=ttyS0<enter><wait>"
|
"net.ifnames=0 biosdevnames=0 inst.ks=http://{{.HTTPIP}}:{{.HTTPPort}}/fedora/rawhide-x86_64.ks console=ttyS0 <enter><wait>"
|
||||||
]
|
]
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,6 @@ boot_command = [
|
|||||||
"DEBIAN_FRONTEND=noninteractive ",
|
"DEBIAN_FRONTEND=noninteractive ",
|
||||||
"preseed/url=http://{{.HTTPIP}}:{{.HTTPPort}}/ubuntu/18.04/preseed.cfg ",
|
"preseed/url=http://{{.HTTPIP}}:{{.HTTPPort}}/ubuntu/18.04/preseed.cfg ",
|
||||||
"fsck.mode=skip ",
|
"fsck.mode=skip ",
|
||||||
"console=ttyS0 ",
|
"console=ttyS0",
|
||||||
"<enter><wait1>"
|
"<enter><wait1>"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ autoinstall:
|
|||||||
- id: boot-partition
|
- id: boot-partition
|
||||||
type: partition
|
type: partition
|
||||||
device: drive
|
device: drive
|
||||||
size: 200M
|
size: 1G
|
||||||
name: boot
|
name: boot
|
||||||
- id: swap-partition
|
- id: swap-partition
|
||||||
type: partition
|
type: partition
|
||||||
|
|||||||
+10
-1
@@ -1,9 +1,18 @@
|
|||||||
build {
|
build {
|
||||||
sources = ["source.qemu.x86_64"]
|
sources = [
|
||||||
|
"source.qemu.x86_64",
|
||||||
|
]
|
||||||
|
|
||||||
provisioner "ansible" {
|
provisioner "ansible" {
|
||||||
playbook_file = "ansible/playbook.yml"
|
playbook_file = "ansible/playbook.yml"
|
||||||
galaxy_file = "ansible/requirements.yml"
|
galaxy_file = "ansible/requirements.yml"
|
||||||
|
user = local.ssh.username
|
||||||
|
use_sftp = true
|
||||||
|
ansible_ssh_extra_args = [
|
||||||
|
"-o HostKeyAlgorithms=+ssh-rsa ",
|
||||||
|
"-o PubkeyAcceptedKeyTypes=+ssh-rsa ",
|
||||||
|
"-o IdentitiesOnly=yes"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
provisioner "shell" {
|
provisioner "shell" {
|
||||||
|
|||||||
+10
-23
@@ -24,34 +24,16 @@ variable "boot_wait" {
|
|||||||
description = "Length of time to wait before entering boot commands"
|
description = "Length of time to wait before entering boot commands"
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "ssh" {
|
|
||||||
type = map(string)
|
|
||||||
default = {
|
|
||||||
username = "vagrant"
|
|
||||||
password = "vagrant"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "boot_command" {
|
variable "boot_command" {
|
||||||
type = list(string)
|
type = list(string)
|
||||||
default = []
|
default = []
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "ssh_handshake_attempts" {
|
|
||||||
type = number
|
|
||||||
default = 1000
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "shutdown_command" {
|
variable "shutdown_command" {
|
||||||
type = string
|
type = string
|
||||||
default = "sudo systemctl poweroff"
|
default = "sudo systemctl poweroff"
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "disk_size" {
|
|
||||||
type = string
|
|
||||||
default = "20G"
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "headless" {
|
variable "headless" {
|
||||||
type = bool
|
type = bool
|
||||||
default = true
|
default = true
|
||||||
@@ -62,11 +44,6 @@ variable "vagrant_cloud_token" {
|
|||||||
default = env("VAGRANT_CLOUD_TOKEN")
|
default = env("VAGRANT_CLOUD_TOKEN")
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "qemu_accelerator" {
|
|
||||||
type = string
|
|
||||||
default = "kvm"
|
|
||||||
}
|
|
||||||
|
|
||||||
locals {
|
locals {
|
||||||
name = "${var.distro}-${var.version}-${var.arch}"
|
name = "${var.distro}-${var.version}-${var.arch}"
|
||||||
build = formatdate("YYYYMMDDhh", timestamp())
|
build = formatdate("YYYYMMDDhh", timestamp())
|
||||||
@@ -76,4 +53,14 @@ locals {
|
|||||||
version = var.version
|
version = var.version
|
||||||
build = local.build
|
build = local.build
|
||||||
})
|
})
|
||||||
|
|
||||||
|
cpus = 2
|
||||||
|
memory = 2048
|
||||||
|
disk_size = 10
|
||||||
|
ssh = {
|
||||||
|
username = "vagrant"
|
||||||
|
password = "vagrant"
|
||||||
|
handshake_attempts = 1000
|
||||||
|
timeout = "5h50m"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+24
-14
@@ -1,20 +1,30 @@
|
|||||||
|
variable "qemu_accelerator" {
|
||||||
|
type = string
|
||||||
|
default = "kvm"
|
||||||
|
}
|
||||||
|
|
||||||
source "qemu" "x86_64" {
|
source "qemu" "x86_64" {
|
||||||
iso_url = var.iso.url
|
iso_url = var.iso.url
|
||||||
iso_checksum = var.iso.checksum
|
iso_checksum = var.iso.checksum
|
||||||
output_directory = "output_${local.name}"
|
output_directory = "output_qemu_${local.name}"
|
||||||
vm_name = "packer-${local.name}"
|
|
||||||
disk_size = var.disk_size
|
|
||||||
boot_wait = var.boot_wait
|
|
||||||
ssh_timeout = "358m"
|
|
||||||
ssh_username = var.ssh.username
|
|
||||||
ssh_password = var.ssh.password
|
|
||||||
headless = var.headless
|
|
||||||
boot_command = var.boot_command
|
boot_command = var.boot_command
|
||||||
http_directory = "http"
|
|
||||||
ssh_handshake_attempts = var.ssh_handshake_attempts
|
|
||||||
accelerator = var.qemu_accelerator
|
|
||||||
cpus = 2
|
|
||||||
memory = 2048
|
|
||||||
qemuargs = [["-serial", "stdio"]]
|
|
||||||
shutdown_command = var.shutdown_command
|
shutdown_command = var.shutdown_command
|
||||||
|
boot_wait = var.boot_wait
|
||||||
|
ssh_timeout = local.ssh.timeout
|
||||||
|
ssh_username = local.ssh.username
|
||||||
|
ssh_password = local.ssh.password
|
||||||
|
ssh_handshake_attempts = local.ssh.handshake_attempts
|
||||||
|
|
||||||
|
vm_name = "packer-${local.name}"
|
||||||
|
disk_size = "${local.disk_size}G"
|
||||||
|
cpus = local.cpus
|
||||||
|
memory = local.memory
|
||||||
|
headless = var.headless
|
||||||
|
disk_cache = "writeback"
|
||||||
|
format = "qcow2"
|
||||||
|
|
||||||
|
qemuargs = [["-serial", "stdio"]]
|
||||||
|
http_directory = "http"
|
||||||
|
accelerator = var.qemu_accelerator
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
source "virtualbox-iso" "x86_64" {
|
||||||
|
iso_url = var.iso.url
|
||||||
|
iso_checksum = var.iso.checksum
|
||||||
|
output_directory = "output_virtualbox_${local.name}"
|
||||||
|
|
||||||
|
boot_command = var.boot_command
|
||||||
|
shutdown_command = var.shutdown_command
|
||||||
|
boot_wait = var.boot_wait
|
||||||
|
|
||||||
|
ssh_timeout = local.ssh.timeout
|
||||||
|
ssh_username = local.ssh.username
|
||||||
|
ssh_password = local.ssh.password
|
||||||
|
ssh_handshake_attempts = local.ssh.handshake_attempts
|
||||||
|
|
||||||
|
vm_name = "packer-${local.name}"
|
||||||
|
disk_size = "${local.disk_size}000"
|
||||||
|
cpus = local.cpus
|
||||||
|
memory = local.memory
|
||||||
|
headless = var.headless
|
||||||
|
guest_os_type = "${var.distro}_64"
|
||||||
|
|
||||||
|
http_directory = "http"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user