#!/bin/bash # Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0 # Importer les fonctions communes source "$(dirname "$0")/../common/common_utils.sh" # Vérifier si le script est exécuté en root check_root set -e # Téléchargement et stockage de la clé PostgreSQL echo "Ajout du dépôt officiel PostgreSQL 17..." mkdir -p /etc/apt/keyrings wget -qO /etc/apt/keyrings/postgresql.asc https://www.postgresql.org/media/keys/ACCC4CF8.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 # Installation echo "Installation de PostgreSQL 17..." apt update -y apt install -y postgresql-17 echo "Démarrage et activation de PostgreSQL..." systemctl enable postgresql systemctl start postgresql echo "Génération d'un mot de passe fort pour l'utilisateur postgres..." POSTGRES_PASSWORD=$(generate_token 20) echo "Configuration du mot de passe de l'utilisateur postgres..." sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '${POSTGRES_PASSWORD}';" echo "Configuration de l'accès local en md5..." PG_HBA="/etc/postgresql/17/main/pg_hba.conf" sed -i "s/^\(local\s\+all\s\+postgres\s\+\)peer/\1md5/" "$PG_HBA" echo "Redémarrage de PostgreSQL pour prendre en compte la configuration..." systemctl restart postgresql echo "" echo "✅ Installation terminée." echo "-------------------------------------------" echo " Mot de passe de l'utilisateur postgres :" echo " ${POSTGRES_PASSWORD}" echo "-------------------------------------------" echo " Pensez à le sauvegarder en lieu sûr."