update script postgres

This commit is contained in:
2025-03-31 22:32:48 +02:00
parent b8808e4219
commit 8e882c7756

View File

@@ -9,35 +9,49 @@ check_root
set -e set -e
# Téléchargement et stockage de la clé PostgreSQL
echo "Ajout du dépôt officiel PostgreSQL 17..." echo "Ajout du dépôt officiel PostgreSQL 17..."
mkdir -p /etc/apt/keyrings mkdir -p /etc/apt/keyrings
wget -qO /etc/apt/keyrings/postgresql.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc wget -qO /etc/apt/keyrings/postgresql.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc
chmod 644 /etc/apt/keyrings/postgresql.asc chmod 644 /etc/apt/keyrings/postgresql.asc
echo "deb [signed-by=/etc/apt/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list echo "deb [signed-by=/etc/apt/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
# Installation
echo "Installation de PostgreSQL 17..." echo "Installation de PostgreSQL 17..."
apt update -y apt update -y
apt install -y postgresql-17 apt install -y postgresql-17
echo "Démarrage et activation de PostgreSQL..." echo "Activation et démarrage du service PostgreSQL..."
systemctl enable postgresql systemctl enable postgresql
systemctl start postgresql systemctl start postgresql
echo "Génération d'un mot de passe fort pour l'utilisateur postgres..." echo "⏳ Attente du démarrage du service PostgreSQL..."
sleep 3
echo "✅ Vérification du service..."
if ! systemctl is-active --quiet postgresql; then
echo "❌ Le service PostgreSQL ne fonctionne pas correctement."
journalctl -xeu postgresql --no-pager | tail -n 20
exit 1
fi
echo "🧪 Test de connexion à PostgreSQL..."
if ! sudo -u postgres psql -c '\q' 2>/dev/null; then
echo "❌ Échec de la connexion à PostgreSQL. Vérifiez que le socket est disponible."
echo " Astuce : systemctl status postgresql"
exit 1
fi
echo "🔐 Génération d'un mot de passe fort pour l'utilisateur postgres..."
POSTGRES_PASSWORD=$(generate_token 20) POSTGRES_PASSWORD=$(generate_token 20)
echo "Configuration du mot de passe de l'utilisateur postgres..." echo "🔧 Configuration du mot de passe de l'utilisateur postgres..."
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '${POSTGRES_PASSWORD}';" sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '${POSTGRES_PASSWORD}';"
echo "Configuration de l'accès local en md5..." echo "🔧 Configuration de l'accès local en md5..."
PG_HBA="/etc/postgresql/17/main/pg_hba.conf" PG_HBA="/etc/postgresql/17/main/pg_hba.conf"
sed -i "s/^\(local\s\+all\s\+postgres\s\+\)peer/\1md5/" "$PG_HBA" sed -i "s/^\(local\s\+all\s\+postgres\s\+\)peer/\1md5/" "$PG_HBA"
echo "Redémarrage de PostgreSQL pour prendre en compte la configuration..." echo "♻️ Redémarrage de PostgreSQL pour appliquer les changements..."
systemctl restart postgresql systemctl restart postgresql
echo "" echo ""