HOST_BASE="/opt/gbo/tenants/$PARAM_TENANT/tables" HOST_DATA="$HOST_BASE/data" HOST_CONF="$HOST_BASE/conf" HOST_LOGS="$HOST_BASE/logs" mkdir -p "$HOST_DATA" "$HOST_CONF" "$HOST_LOGS" lxc launch images:debian/12 "$PARAM_TENANT"-tables -c security.privileged=true until lxc exec "$PARAM_TENANT"-tables -- test -f /bin/bash; do sleep 5 done sleep 10 lxc exec "$PARAM_TENANT"-tables -- bash -c " set -e export DEBIAN_FRONTEND=noninteractive apt-get update apt-get install -y wget gnupg2 sudo lsb-release curl sudo apt install -y postgresql-common sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh apt install -y postgresql systemctl stop postgresql mkdir -p /etc/systemd/system/postgresql.service.d/ cat > /etc/systemd/system/postgresql.service.d/override.conf <> \"\$HBA_FILE\" fi fi systemctl daemon-reload systemctl start postgresql systemctl enable postgresql until sudo -u postgres psql -p $PARAM_TABLES_PORT -c '\q' 2>/dev/null; do echo \"Waiting for PostgreSQL to start on port $PARAM_TABLES_PORT...\" sleep 3 done sudo -u postgres psql -p $PARAM_TABLES_PORT -c \"CREATE USER $PARAM_TENANT WITH PASSWORD '$PARAM_TABLES_PASSWORD';\" sudo -u postgres psql -p $PARAM_TABLES_PORT -c \"CREATE DATABASE ${PARAM_TENANT}_db OWNER $PARAM_TENANT;\" sudo -u postgres psql -p $PARAM_TABLES_PORT -c \"GRANT ALL PRIVILEGES ON DATABASE ${PARAM_TENANT}_db TO $PARAM_TENANT;\" systemctl restart postgresql " lxc exec "$PARAM_TENANT"-tables -- systemctl stop postgresql PG_DATA_DIR=$(lxc exec "$PARAM_TENANT"-tables -- bash -c "find /var/lib/postgresql -name main -type d | head -1") PG_CONF_DIR=$(lxc exec "$PARAM_TENANT"-tables -- bash -c "find /etc/postgresql -name main -type d | head -1") PG_LOGS_DIR=$(lxc exec "$PARAM_TENANT"-tables -- bash -c "find /var/log/postgresql -name postgresql-*.log -o -name postgresql.log | head -1 | xargs dirname 2>/dev/null || echo /var/log/postgresql") lxc config device add "$PARAM_TENANT"-tables pgdata disk source="$HOST_DATA" path="$PG_DATA_DIR" lxc config device add "$PARAM_TENANT"-tables pgconf disk source="$HOST_CONF" path="$PG_CONF_DIR" lxc config device add "$PARAM_TENANT"-tables pglogs disk source="$HOST_LOGS" path="$PG_LOGS_DIR" lxc exec "$PARAM_TENANT"-tables -- chown -R postgres:postgres "$PG_DATA_DIR" lxc exec "$PARAM_TENANT"-tables -- chown -R postgres:postgres "$PG_CONF_DIR" lxc exec "$PARAM_TENANT"-tables -- chown -R postgres:postgres "$PG_LOGS_DIR" lxc exec "$PARAM_TENANT"-tables -- systemctl start postgresql lxc config device remove "$PARAM_TENANT"-tables postgres-proxy 2>/dev/null || true lxc config device add "$PARAM_TENANT"-tables postgres-proxy proxy \ listen=tcp:0.0.0.0:"$PARAM_TABLES_PORT" \ connect=tcp:127.0.0.1:"$PARAM_TABLES_PORT" echo "PostgreSQL setup completed successfully!" echo "Database: ${PARAM_TENANT}_db" echo "User: $PARAM_TENANT" echo "Password: $PARAM_TABLES_PASSWORD" echo "Port: $PARAM_TABLES_PORT"