From a5bd03ec6bf64544a8767b85b91f4c71f79ce88e Mon Sep 17 00:00:00 2001 From: Ian Wienand Date: Tue, 9 Jul 2019 12:38:52 +1000 Subject: [PATCH] journal-to-console: element to send systemd journal to console This element configures systemd to send its journal to the console, which can then be retreived by server commands. In the case of nodepool, if the image failed to boot the console will be dumped into the logs when nodepool decides the node is not responding. Having this can be very helpful diagnosing early boot errors. Needed-By: https://review.opendev.org/#/c/669787/ Change-Id: I6b6df7023acb6b2f967b84840bc4b542ebc03727 --- .../elements/journal-to-console/README.rst | 10 +++++++ .../post-install.d/30-journal-to-console | 28 +++++++++++++++++++ .../journal-console-752b46542ec5595e.yaml | 6 ++++ 3 files changed, 44 insertions(+) create mode 100644 diskimage_builder/elements/journal-to-console/README.rst create mode 100755 diskimage_builder/elements/journal-to-console/post-install.d/30-journal-to-console create mode 100644 releasenotes/notes/journal-console-752b46542ec5595e.yaml diff --git a/diskimage_builder/elements/journal-to-console/README.rst b/diskimage_builder/elements/journal-to-console/README.rst new file mode 100644 index 00000000..bd6953d9 --- /dev/null +++ b/diskimage_builder/elements/journal-to-console/README.rst @@ -0,0 +1,10 @@ +================== +journal-to-console +================== + +Configure systemd's journal to send all logs to console. Useful for +debugging issues before you can log into a host, such as network or +authentication issues. + +The console can be retrieved from an OpenStack cloud with a command +such as ``openstack console log show ``. diff --git a/diskimage_builder/elements/journal-to-console/post-install.d/30-journal-to-console b/diskimage_builder/elements/journal-to-console/post-install.d/30-journal-to-console new file mode 100755 index 00000000..8a4e42f8 --- /dev/null +++ b/diskimage_builder/elements/journal-to-console/post-install.d/30-journal-to-console @@ -0,0 +1,28 @@ +#!/bin/bash +# +# Copyright 2019 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +if [ ${DIB_DEBUG_TRACE:-1} -gt 0 ]; then + set -x +fi +set -eu +set -o pipefail + +mkdir -p /etc/systemd/journald.conf.d + +cat > /etc/systemd/journald.conf.d/log-to-console.conf << EOF +[Journal] +ForwardToConsole=true +EOF diff --git a/releasenotes/notes/journal-console-752b46542ec5595e.yaml b/releasenotes/notes/journal-console-752b46542ec5595e.yaml new file mode 100644 index 00000000..a79b189d --- /dev/null +++ b/releasenotes/notes/journal-console-752b46542ec5595e.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + The ``journal-to-console`` element is added to allow forwarding + systemd output to the host console. This is useful for debugging + early boot issues.