diff --git a/Dockerfile b/Dockerfile index 1fff66e6f..58a9202b3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -56,6 +56,7 @@ COPY ./runhttpd.sh /bin/runhttpd COPY ./runmariadb.sh /bin/runmariadb COPY ./configure-ironic.sh /bin/configure-ironic.sh COPY ./ironic-common.sh /bin/ironic-common.sh +COPY ./runlogwatch.sh /bin/runlogwatch.sh # TODO(dtantsur): remove this script when we stop supporting running both # API and conductor processes via one entry point. diff --git a/README.md b/README.md index 796ff1104..a116b3a7c 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ The following entry points are provided: - rundnsmasq - Runs the dnmasq dhcp server to provide addresses and initiate PXE boot of baremetal nodes. This includes a lightweight TFTP server. Details on dnsmasq can be found at http://www.thekelleys.org.uk/dnsmasq/doc.html. - runhttpd - Starts the Apache web server to provide images via http for PXE boot and for deployment of the final images. - runmariadb - Provides a database to store information associated with baremetal nodes. +- runlogwatch - Waits for host provisioning ramdisk logs to appear, prints their contents and deletes files. All of the containers must share a common mount point or data store. Ironic requires files for both the TFTP server and HTTP server to be stored in the same partition. This common store must include, in /html/images, the following images: - ironic-python-agent.kernel diff --git a/runlogwatch.sh b/runlogwatch.sh new file mode 100644 index 000000000..40213fd68 --- /dev/null +++ b/runlogwatch.sh @@ -0,0 +1,20 @@ +#!/usr/bin/bash + +# Ramdisk logs path +LOG_DIR="/shared/log/ironic/deploy" + +while : +do + until ls "${LOG_DIR}"/*.tar.gz 1> /dev/null 2>&1 + do + sleep 5 + done + + for fn in "${LOG_DIR}"/*.tar.gz + do + echo "************ Contents of $fn ramdisk log file bundle **************" + tar -xOzvvf $fn | sed -e "s/^/$(basename $fn): /" + rm -f $fn + done +done +