From a2544ded0f34d7169bd199b0c81e89c9f44d9874 Mon Sep 17 00:00:00 2001 From: Mischa Taylor Date: Sun, 23 Jun 2024 00:21:56 +0000 Subject: [PATCH] Add centos-stream-9 x86_64 template --- centos/cloud/scripts/cloud-init-wait.sh | 13 ++ centos/cloud/x86_64/README.md | 11 ++ .../x86_64/centos-stream-9-x86_64.pkrvars.hcl | 6 + centos/cloud/x86_64/centos.pkr.hcl | 112 ++++++++++++++++++ 4 files changed, 142 insertions(+) create mode 100644 centos/cloud/scripts/cloud-init-wait.sh create mode 100644 centos/cloud/x86_64/README.md create mode 100644 centos/cloud/x86_64/centos-stream-9-x86_64.pkrvars.hcl create mode 100644 centos/cloud/x86_64/centos.pkr.hcl diff --git a/centos/cloud/scripts/cloud-init-wait.sh b/centos/cloud/scripts/cloud-init-wait.sh new file mode 100644 index 0000000..048e265 --- /dev/null +++ b/centos/cloud/scripts/cloud-init-wait.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +# https://bugs.launchpad.net/cloud-init/+bug/1890528 +# cloud-init can return an exit status on wait other than 0 +# so eat the exit status for now so it doesn't error packer +cloud_init_status=0 +cloud-init status --wait || cloud_init_status=$? + +if [ "$cloud_init_status" = "0" ]; then + echo "cloud-init succeeded" +else + echo "cloud-init exit=${cloud_init_status}" +fi diff --git a/centos/cloud/x86_64/README.md b/centos/cloud/x86_64/README.md new file mode 100644 index 0000000..64addf0 --- /dev/null +++ b/centos/cloud/x86_64/README.md @@ -0,0 +1,11 @@ +# CentOS Cloud Images + +## CentOS Stream 9 UEFI virtual firmware + +``` +cd centos/cloud/x86_64 +packer init . +PACKER_LOG=1 packer build \ + -var-file centos-stream-9-x86_64.pkrvars.hcl \ + centos.pkr.hcl +``` diff --git a/centos/cloud/x86_64/centos-stream-9-x86_64.pkrvars.hcl b/centos/cloud/x86_64/centos-stream-9-x86_64.pkrvars.hcl new file mode 100644 index 0000000..91d5796 --- /dev/null +++ b/centos/cloud/x86_64/centos-stream-9-x86_64.pkrvars.hcl @@ -0,0 +1,6 @@ +efi_boot = true +efi_firmware_code = "/usr/share/OVMF/OVMF_CODE.fd" +efi_firmware_vars = "/usr/share/OVMF/OVMF_VARS.fd" +iso_checksum = "file:https://cloud.centos.org/centos/9-stream/x86_64/images/CHECKSUM" +iso_url = "https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-x86_64-9-latest.x86_64.qcow2" +vm_name = "centos-stream-9-x86_64" diff --git a/centos/cloud/x86_64/centos.pkr.hcl b/centos/cloud/x86_64/centos.pkr.hcl new file mode 100644 index 0000000..ae84114 --- /dev/null +++ b/centos/cloud/x86_64/centos.pkr.hcl @@ -0,0 +1,112 @@ +packer { + required_plugins { + qemu = { + version = "~> 1" + source = "github.com/hashicorp/qemu" + } + } +} + +variable "efi_boot" { + type = bool + default = false +} + +variable "efi_firmware_code" { + type = string + default = null +} + +variable "efi_firmware_vars" { + type = string + default = null +} + +variable "ssh_username" { + type = string + default = "packer" +} + +variable "ssh_password" { + type = string + default = "packer" +} + +variable "vm_name" { + type = string + default = "centos-stream-9-x86_64" +} + +source "file" "user_data" { + content = <