50 lines
1.6 KiB
Bash
50 lines
1.6 KiB
Bash
#!/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."
|