diff --git a/diskimage_builder/elements/iscsi-boot/README.rst b/diskimage_builder/elements/iscsi-boot/README.rst new file mode 100644 index 000000000..70a674e1b --- /dev/null +++ b/diskimage_builder/elements/iscsi-boot/README.rst @@ -0,0 +1,13 @@ +========== +iscsi-boot +========== +Handles configuration for the disk to be capable of serving as +a remote root filesystem through iSCSI. Currently, this element +only configures Ubuntu/Debian images. + +It performs the following actions: + +* Installs the ``open-iscsi`` package. +* Creates the ``etc/iscsi/iscsi.initramfs`` configuration file and sets + ``ISCSI_AUTO=true`` within it. +* Updates the initramfs to apply the changes. diff --git a/diskimage_builder/elements/iscsi-boot/element-deps b/diskimage_builder/elements/iscsi-boot/element-deps new file mode 100644 index 000000000..7076aba94 --- /dev/null +++ b/diskimage_builder/elements/iscsi-boot/element-deps @@ -0,0 +1 @@ +package-installs diff --git a/diskimage_builder/elements/iscsi-boot/package-installs.yaml b/diskimage_builder/elements/iscsi-boot/package-installs.yaml new file mode 100644 index 000000000..9eeeeec5a --- /dev/null +++ b/diskimage_builder/elements/iscsi-boot/package-installs.yaml @@ -0,0 +1,2 @@ +open-iscsi: + phase: install.d diff --git a/diskimage_builder/elements/iscsi-boot/post-install.d/open-iscsi-config b/diskimage_builder/elements/iscsi-boot/post-install.d/open-iscsi-config new file mode 100755 index 000000000..4ad292c3f --- /dev/null +++ b/diskimage_builder/elements/iscsi-boot/post-install.d/open-iscsi-config @@ -0,0 +1,13 @@ +#!/bin/bash + +if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then + set -x +fi + +set -eu +set -o pipefail + +if [[ $DISTRO_NAME = "ubuntu" || $DISTRO_NAME = "debian" ]]; then + echo "ISCSI_AUTO=true" > /etc/iscsi/iscsi.initramfs + update-initramfs -u +fi