hashicorp/packer-plugin-qemu

Add serial mode in qemu builder

Opened this issue · 1 comments

This issue was originally opened by @ltrager as hashicorp/packer#9927. It was migrated here as a result of the Packer plugin split. The original body of the issue is below.


Description

Packer is often run in environments that do not have access to a UI. While Packer supports running headless no output is given to the terminal. A template can be constructed today that shows serial output by adding "qemuargs": [[ "-serial", "stdio" ]] and running Packer with PACKER_LOG=1. See the CentOS 8 Packer template as an example.

While this works "2020/09/11 02:04:16 packer-builder-qemu plugin: Qemu stdout" is often mixed in with output which makes things hard to read. Ideally an official option would be added to Packer which adds "-serial stdio" to the qemu arguments and doesn't prepend each line.

Use Case(s)

  1. I am working on using gh:canonical/packer-maas to produce the public CentOS images for MAAS. I have been given a Jenkins server to do this but have no access to the Jenkins builders. This makes debugging very hard as I can't VNC in, all I get is the terminal output.
  2. Users of gh:canonical/packer-maas run Packer on Ubuntu desktop, remotely on an Ubuntu server over SSH, or in a Jenkins job. As such I have gh:canonical/packer-maas set to run headless. I've been asked to show progress while Packer is running as well as add the ability for users to send me logs.

Potential configuration

"serial": "true/false"

FWIW, I'm also using the serial qemu args, and my centos8 kickstart was looking pretty bad until I discovered I could disable tmux, now it's all plain text with no control characters that were causing the packer log prefixes from getting mixed up in the serial output.

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/performing_an_advanced_rhel_installation/kickstart-and-advanced-boot-options_installing-rhel-as-an-experienced-user

inst.notmux
Use inst.notmux option if you do not want to use tmux during installation. The output is generated without terminal control characters and is meant for non-interactive uses.