diff --git a/scripts/.directories.txt b/scripts/.directories.txt index e5ea4a0..e6cbac9 100644 --- a/scripts/.directories.txt +++ b/scripts/.directories.txt @@ -3,3 +3,4 @@ server-dhcp server-httpd server-mail server-mariadb +server-postgres diff --git a/scripts/server-postgres/.list_files.txt b/scripts/server-postgres/.list_files.txt new file mode 100644 index 0000000..74a589c --- /dev/null +++ b/scripts/server-postgres/.list_files.txt @@ -0,0 +1 @@ +setup-postgres17.sh diff --git a/scripts/server-postgres/setup-postgres17.sh b/scripts/server-postgres/setup-postgres17.sh new file mode 100644 index 0000000..460de60 --- /dev/null +++ b/scripts/server-postgres/setup-postgres17.sh @@ -0,0 +1,49 @@ +#!/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."