Add iscsi-boot element for CentOS images
This patch adds an element that handles the configuration for creating a disk capable of being a remote root filesystem through iSCSI on CentOS images. Tested on Fujitsu Server and boot with BIOS and UEFI mode successfully. - Tested Boot-From-Volume + EFI for centos7 with following elements: "centos7 vm devuser cloud-init-datasources dhcp-all-interfaces iscsi-boot dracut-regenerate block-device-efi" Co-authored-By: Nguyen Van Trung <trungnv@vn.fujitsu.com> Change-Id: Ia1f23d722dced6f254fd7aee86abe8066a72fa42
This commit is contained in:
parent
e210f79500
commit
a4648872ba
@ -3,11 +3,18 @@ iscsi-boot
|
|||||||
==========
|
==========
|
||||||
Handles configuration for the disk to be capable of serving as
|
Handles configuration for the disk to be capable of serving as
|
||||||
a remote root filesystem through iSCSI. Currently, this element
|
a remote root filesystem through iSCSI. Currently, this element
|
||||||
only configures Ubuntu/Debian images.
|
can configure Ubuntu/Debian images and CentOS7 images.
|
||||||
|
|
||||||
It performs the following actions:
|
It performs the following actions:
|
||||||
|
|
||||||
* Installs the ``open-iscsi`` package.
|
For Ubuntu/Debian images:
|
||||||
* Creates the ``etc/iscsi/iscsi.initramfs`` configuration file and sets
|
* Installs the ``open-iscsi`` package.
|
||||||
``ISCSI_AUTO=true`` within it.
|
* Creates the ``etc/iscsi/iscsi.initramfs`` configuration file and sets
|
||||||
* Updates the initramfs to apply the changes.
|
``ISCSI_AUTO=true`` within it.
|
||||||
|
* Updates the initramfs to apply the changes.
|
||||||
|
|
||||||
|
For CentOS7 images:
|
||||||
|
* Required ``dracut-regenerate`` element when performs ``disk-image-create``.
|
||||||
|
* Updates ``network`` and ``iscsi`` into ``dracut-regenerate`` during
|
||||||
|
pre-installs.
|
||||||
|
* Updates ``GRUB_CMDLINE_LINUX_DEFAULT`` into ``/etc/default/grub``.
|
||||||
|
@ -0,0 +1,14 @@
|
|||||||
|
if [[ $DISTRO_NAME = "centos7" ]]; then
|
||||||
|
eval declare -A image_elements=($(get_image_element_array))
|
||||||
|
found=0
|
||||||
|
for i in "${!image_elements[@]}"; do
|
||||||
|
[ "$i" = "dracut-regenerate" ] && found=1
|
||||||
|
done
|
||||||
|
[ "$found" = 0 ] && echo "The dracut-regenerate element is required!" && exit 1
|
||||||
|
|
||||||
|
DIB_DRACUT_ENABLED_MODULES+="
|
||||||
|
- name: network
|
||||||
|
- name: iscsi
|
||||||
|
"
|
||||||
|
export DIB_DRACUT_ENABLED_MODULES
|
||||||
|
fi
|
13
diskimage_builder/elements/iscsi-boot/finalise.d/51-open-iscsi-config
Executable file
13
diskimage_builder/elements/iscsi-boot/finalise.d/51-open-iscsi-config
Executable file
@ -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 = "centos7" ]]; then
|
||||||
|
sed -i -E 's/(GRUB_CMDLINE_LINUX_DEFAULT=")(.+)(")/\1\2 rd.iscsi.firmware=1"/' /etc/default/grub
|
||||||
|
grub2-mkconfig -o /boot/grub2/grub.cfg
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user