diff --git a/modules/app_stack/scripts/mysql_setup.sh.tftpl b/modules/app_stack/scripts/mysql_setup.sh.tftpl index 1904877..75ae358 100644 --- a/modules/app_stack/scripts/mysql_setup.sh.tftpl +++ b/modules/app_stack/scripts/mysql_setup.sh.tftpl @@ -18,8 +18,32 @@ command -v docker >/dev/null command -v blkid >/dev/null command -v mkfs.ext4 >/dev/null command -v mountpoint >/dev/null +command -v swapon >/dev/null +command -v mkswap >/dev/null + +ensure_swap() { + local swap_file="/swapfile" + + if ! swapon --show=NAME --noheadings | grep -Fxq "$swap_file"; then + if [ ! -f "$swap_file" ]; then + fallocate -l 2G "$swap_file" || dd if=/dev/zero of="$swap_file" bs=1M count=2048 + fi + + chmod 600 "$swap_file" + if [ "$(blkid -s TYPE -o value "$swap_file" 2>/dev/null || true)" != "swap" ]; then + mkswap "$swap_file" + fi + + swapon "$swap_file" + fi + + if ! grep -Eq "^[^#][[:space:]]*$swap_file[[:space:]]+none[[:space:]]+swap[[:space:]]" /etc/fstab; then + printf '%s none swap sw 0 0\n' "$swap_file" >> /etc/fstab + fi +} systemctl enable docker +ensure_swap DATA_VOLUME_ID="${db_data_volume_id}" DATA_VOLUME_SERIAL="$(printf '%s' "$DATA_VOLUME_ID" | tr -d '-')"