Improve the ability to enable swap

This change will imporve the ability to enable a swap partition should
one be present. The updated script will now use the label when defined
and found, it then will look for a partition in the /etc/fstab file prior
to writing the file system entry. This resolves an issue where if this
template was executed more than once, a given partition would be written
to the /etc/fstab file repeatedly. If a given label is undefined the
script will look for swap filesystem types and use the UUID of the given
swap filesystem to enable swap functionality. This improvement will
ensure hosts that have swap partition already created, but potentially
unlabled, are able to be handled correctly. This will work with LVM,
Logical, Primary partition types.

Change-Id: I60a1f427d4f58ae559c797f37f8230d6eb694e1d
Signed-off-by: Kevin Carter <kecarter@redhat.com>
This commit is contained in:
Kevin Carter 2020-02-20 17:41:04 -06:00
parent e86b3e9b33
commit 5e3719d21e
No known key found for this signature in database
GPG Key ID: CE94BD890A47B20A

View File

@ -18,14 +18,19 @@ resources:
config: |
#!/bin/bash
set -eux
swap_partition=$(realpath /dev/disk/by-label/$swap_partition_label)
if [ -f "$swap_partition" ]; then
swapon $swap_partition
echo "$swap_partition swap swap defaults 0 0" >> /etc/fstab
if [ -e "/dev/disk/by-label/${swap_partition_label}" ]; then
swap_partition=$(realpath /dev/disk/by-label/${swap_partition_label})
if ! grep -qe "${swap_partition}" /etc/fstab; then
echo "$swap_partition swap swap defaults 0 0" | tee -a /etc/fstab
fi
else
echo "$swap_partition needs to be a valid path"
echo "Check that $swap_partition_label is a valid partition label"
for item in $(lsblk -f --output FSTYPE,UUID | awk '/swap/ {print $2}'); do
if ! grep -qe "${item}" /etc/fstab; then
echo -e "UUID=${item} swap swap defaults 0 0" | tee -a /etc/fstab
fi
done
fi
swapon -a
inputs:
- name: swap_partition_label
description: Swap partition label