From e61376c2d2a97af7a2e905d6e2951b0f50ff4d0b Mon Sep 17 00:00:00 2001 From: Yolanda Robla Mota Date: Mon, 16 Jan 2017 16:36:21 +0100 Subject: [PATCH] Add element to customize dracut on the agent Updates the ironic agent, installing multipath package and regenerating dracut to add all the specified drivers. Change-Id: Ieda51d71c4760c66c00c48d27b6b6b66e3f479eb (cherry picked from commit 15b5776c57322eb736006907e22aa0ae6eeb8ea3) --- elements/ironic-agent-multipath/README.rst | 10 ++++++++++ elements/ironic-agent-multipath/element-deps | 2 ++ .../finalise.d/98-regenerate-initramfs | 13 +++++++++++++ .../ironic-agent-multipath/package-installs.yaml | 2 ++ environment.d/10-ironic-agent-multipath.bash | 3 +++ 5 files changed, 30 insertions(+) create mode 100644 elements/ironic-agent-multipath/README.rst create mode 100644 elements/ironic-agent-multipath/element-deps create mode 100755 elements/ironic-agent-multipath/finalise.d/98-regenerate-initramfs create mode 100644 elements/ironic-agent-multipath/package-installs.yaml create mode 100755 environment.d/10-ironic-agent-multipath.bash diff --git a/elements/ironic-agent-multipath/README.rst b/elements/ironic-agent-multipath/README.rst new file mode 100644 index 000000000..8c658777e --- /dev/null +++ b/elements/ironic-agent-multipath/README.rst @@ -0,0 +1,10 @@ +====================== +ironic-agent-multipath +====================== +Updates the ironic agent, installing multipath package, +and rebuilding dracut to add the specified drivers. + +The drivers to add can be specified with the +`IRONIC_AGENT_MULTIPATH_DRIVERS`. It accepts a list of +drivers to add separated by spaces. The default values are +'be2iscsi iscsi_target_mod dm_multipath'. diff --git a/elements/ironic-agent-multipath/element-deps b/elements/ironic-agent-multipath/element-deps new file mode 100644 index 000000000..8c3ffe52a --- /dev/null +++ b/elements/ironic-agent-multipath/element-deps @@ -0,0 +1,2 @@ +package-installs +select-boot-kernel-initrd diff --git a/elements/ironic-agent-multipath/finalise.d/98-regenerate-initramfs b/elements/ironic-agent-multipath/finalise.d/98-regenerate-initramfs new file mode 100755 index 000000000..597d2dcd3 --- /dev/null +++ b/elements/ironic-agent-multipath/finalise.d/98-regenerate-initramfs @@ -0,0 +1,13 @@ +#!/bin/bash + +if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then + set -x +fi +set -eu +set -o pipefail + +RET=$(select-boot-kernel-initrd) +KERNEL_VERSION=`echo ${RET%:*} | sed 's/vmlinuz-//g'` +RAMDISK=/boot/${RET#*:} + +dracut -v --force --add-drivers "$IRONIC_AGENT_MULTIPATH_DRIVERS" $RAMDISK $KERNEL_VERSION diff --git a/elements/ironic-agent-multipath/package-installs.yaml b/elements/ironic-agent-multipath/package-installs.yaml new file mode 100644 index 000000000..9383be918 --- /dev/null +++ b/elements/ironic-agent-multipath/package-installs.yaml @@ -0,0 +1,2 @@ +iscsi-initiator-utils: +device-mapper-multipath: diff --git a/environment.d/10-ironic-agent-multipath.bash b/environment.d/10-ironic-agent-multipath.bash new file mode 100755 index 000000000..c99daed65 --- /dev/null +++ b/environment.d/10-ironic-agent-multipath.bash @@ -0,0 +1,3 @@ +if [ -z "${IRONIC_AGENT_MULTIPATH_DRIVERS:-}" ]; then + export IRONIC_AGENT_MULTIPATH_DRIVERS=${IRONIC_AGENT_MULTIPATH_DRIVERS:-"be2iscsi iscsi_target_mod dm_multipath"} +fi