mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 14:35:27 +00:00
The end state it produces is _either_: - `/srv/postgresql` already existed, which was symlinked into `/var/lib/postgresql`; postgres is left untouched. This is the situation if `setup_disks` is run on the database primary, or a replica which was correctly configured. - An empty `/srv/postgresql` now exists, symlinked into `/var/lib/postgresql`, and postgres is stopped. This is the situation if `puppet` was just run on a new host, or a previously-configured host was rebooted (clearing the temporary disk in `/dev/nvme0`) In the latter case, where `/srv/postgresql` is now empty, any previous contents of `/var/lib/postgresql` are placed under `/root`, timestamped for uniqueness. In either case, the tool should now be idempotent.
29 lines
605 B
Bash
Executable File
29 lines
605 B
Bash
Executable File
#!/bin/sh
|
|
set -x
|
|
set -e
|
|
|
|
LOCALDISK=/dev/nvme0n1
|
|
|
|
if ! grep -q $LOCALDISK /etc/fstab; then
|
|
echo "$LOCALDISK /srv xfs nofail,noatime 1 1" >> /etc/fstab
|
|
fi
|
|
|
|
if ! mountpoint -q /srv; then
|
|
mkfs.xfs $LOCALDISK
|
|
mount /srv
|
|
fi
|
|
|
|
if [ ! -L /var/lib/postgresql ]; then
|
|
service postgresql stop
|
|
if [ -e /var/lib/postgresql ]; then
|
|
mv /var/lib/postgresql "/root/postgres-data-$(date +'%m-%d-%Y-%T')"
|
|
fi
|
|
ln -s /srv/postgresql/ /var/lib
|
|
fi
|
|
|
|
if [ ! -e "/srv/postgresql" ]; then
|
|
service postgresql stop
|
|
mkdir "/srv/postgresql"
|
|
chown postgres:postgres /srv/postgresql
|
|
fi
|