Files
proxmox/scripts/archive/consolidated/deploy/install-postgresql-complete.sh

58 lines
1.9 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
# Install PostgreSQL on all database containers
set -uo pipefail
NODE_IP="${PROXMOX_HOST_R630_01}"
log_info() { echo -e "\033[0;32m[INFO]\033[0m $1"; }
log_success() { echo -e "\033[0;32m[✓]\033[0m $1"; }
log_error() { echo -e "\033[0;31m[ERROR]\033[0m $1"; }
install_postgresql() {
local vmid="$1"
log_info "Installing PostgreSQL on CT $vmid..."
ssh -o ConnectTimeout=20 -o StrictHostKeyChecking=no root@${NODE_IP} "
pct stop $vmid 2>/dev/null || true
sleep 3
pct mount $vmid >/dev/null 2>&1
MOUNT=\$(pct mountpoint $vmid 2>/dev/null || echo '/var/lib/lxc/$vmid/rootfs')
if [ -d \"\$MOUNT\" ]; then
chroot \$MOUNT bash -c '
export DEBIAN_FRONTEND=noninteractive
apt-get update -qq
apt-get install -y -qq wget ca-certificates gnupg lsb-release
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
echo \"deb http://apt.postgresql.org/pub/repos/apt \$(lsb_release -cs)-pgdg main\" > /etc/apt/sources.list.d/pgdg.list
apt-get update -qq
apt-get install -y -qq postgresql-15 postgresql-contrib-15 2>&1 | tail -5
echo \"PostgreSQL installed\"
'
pct unmount $vmid
fi
pct start $vmid
sleep 5
" && log_success "PostgreSQL installed on CT $vmid" || log_error "Failed on CT $vmid"
}
echo "Installing PostgreSQL on database containers..."
for vmid in 10000 10001 10100 10101; do
install_postgresql "$vmid"
sleep 3
done
echo ""
log_info "Verifying installations..."
for vmid in 10000 10001 10100 10101; do
result=$(ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no root@${NODE_IP} \
"pct exec $vmid -- bash -c 'ls /usr/lib/postgresql/ 2>&1 | head -1'")
echo " CT $vmid: $result"
done
echo ""
log_success "PostgreSQL installation complete!"