Skip to content

Commit 236e92c

Browse files
committed
fix: detect disks for ubuntu 24.04 inconsistencies
1 parent a354379 commit 236e92c

File tree

1 file changed

+37
-6
lines changed

1 file changed

+37
-6
lines changed

ansible/files/admin_api_scripts/grow_fs.sh

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,42 @@ set -euo pipefail
44

55
VOLUME_TYPE=${1:-data}
66

7+
# lsb release
8+
UBUNTU_VERSION=$(lsb_release -rs)
9+
710
if pgrep resizefs; then
811
echo "resize2fs is already running"
912
exit 1
1013
fi
1114

15+
# install amazon disk utilities if not present on 24.04
16+
if [ "${UBUNTU_VERSION}" = "24.04" ] && ! dpkg -l | grep -q amazon-ec2-utils; then
17+
apt-get update
18+
apt-get install -y amazon-ec2-utils || true
19+
fi
20+
21+
# We currently mount 3 possible disks
22+
# - /dev/xvda (root disk)
23+
# - /dev/xvdh (data disk)
24+
# - /dev/xvdp (upgrade data disk)
25+
# Initialize variables at 20.04 levels
26+
XVDA_DEVICE="/dev/nvme0n1"
27+
XVDH_DEVICE="/dev/nvme1n1"
28+
# Map AWS devices to NVMe for ubuntu 24.04 and later
29+
if [ "${UBUNTU_VERSION}" = "24.04" ] && dpkg -l | grep -q amazon-ec2-utils; then
30+
for nvme_dev in $(lsblk -dprno name,type | grep disk | awk '{print $1}'); do
31+
if [ -b "$nvme_dev" ]; then
32+
mapping=$(ebsnvme-id -b "$nvme_dev" 2>/dev/null)
33+
case "$mapping" in
34+
"xvda"|"/dev/xvda") XVDA_DEVICE="$nvme_dev" ;;
35+
"xvdh"|"/dev/xvdh") XVDH_DEVICE="$nvme_dev" ;;
36+
esac
37+
fi
38+
done
39+
fi
40+
41+
echo "Using devices - Root: $XVDA_DEVICE, Data: $XVDH_DEVICE"
42+
1243
# Parses the output of lsblk to get the root partition number
1344
# Example output:
1445
# NAME MOUNTPOINT
@@ -26,15 +57,15 @@ if ! [[ "$ROOT_PARTITION_NUMBER" =~ ^[0-9]+$ ]]; then
2657
exit 1
2758
fi
2859

29-
if [ -b /dev/nvme1n1 ] ; then
60+
if [ -b "${XVDH_DEVICE}" ] ; then
3061
if [[ "${VOLUME_TYPE}" == "data" ]]; then
31-
resize2fs /dev/nvme1n1
62+
resize2fs $XVDH_DEVICE
3263

3364
elif [[ "${VOLUME_TYPE}" == "root" ]] ; then
3465
PLACEHOLDER_FL=/home/ubuntu/50M_PLACEHOLDER
3566
rm -f "${PLACEHOLDER_FL}" || true
36-
growpart /dev/nvme0n1 "${ROOT_PARTITION_NUMBER}"
37-
resize2fs "/dev/nvme0n1p${ROOT_PARTITION_NUMBER}"
67+
growpart "${XVDA_DEVICE}" "${ROOT_PARTITION_NUMBER}"
68+
resize2fs "${XVDA_DEVICE}p${ROOT_PARTITION_NUMBER}"
3869
if [[ ! -f "${PLACEHOLDER_FL}" ]] ; then
3970
fallocate -l50M "${PLACEHOLDER_FL}"
4071
fi
@@ -43,7 +74,7 @@ if [ -b /dev/nvme1n1 ] ; then
4374
exit 1
4475
fi
4576
else
46-
growpart /dev/nvme0n1 "${ROOT_PARTITION_NUMBER}"
47-
resize2fs "/dev/nvme0n1p${ROOT_PARTITION_NUMBER}"
77+
growpart "${XVDA_DEVICE}" "${ROOT_PARTITION_NUMBER}"
78+
resize2fs "${XVDA_DEVICE}p${ROOT_PARTITION_NUMBER}"
4879
fi
4980
echo "Done resizing disk"

0 commit comments

Comments
 (0)