zulip/puppet/kandra/files/postgresql/setup_disks.sh

45 lines
946 B
Bash
Executable File

#!/bin/bash
set -x
set -e
set -o pipefail
LOCALDISK=$(
nvme list -o json \
| jq -r '.Devices[] | select(.ModelNumber | contains("Instance Storage")) | .DevicePath' \
| head -n1
)
if [ -z "$LOCALDISK" ]; then
echo "No instance storage found!"
nvme list
exit 1
fi
if ! grep -q "$LOCALDISK" /etc/fstab; then
echo "$LOCALDISK /srv/data xfs nofail,noatime 1 1" >>/etc/fstab
fi
if [ ! -d /srv/data ]; then
mkdir /srv/data
fi
if ! mountpoint -q /srv/data; then
mkfs.xfs "$LOCALDISK"
mount /srv/data
fi
if [ ! -L /var/lib/postgresql ]; then
service postgresql stop
if [ -e /var/lib/postgresql ]; then
mv /var/lib/postgresql "/root/postgresql-data-$(date +'%m-%d-%Y-%T')"
fi
ln -s /srv/data/postgresql/ /var/lib
fi
if [ ! -e "/srv/data/postgresql" ]; then
service postgresql stop
mkdir "/srv/data/postgresql"
chown postgres:postgres /srv/data/postgresql
fi