update script postgres
This commit is contained in:
@@ -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 ""
|
||||||
|
|||||||
Reference in New Issue
Block a user