From bd74da92ff448c43cf349e08edd41262fc50d041 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9drix?= <cedric@abonnel.fr>
Date: Mon, 24 Mar 2025 12:16:58 +0100
Subject: [PATCH] ajout script pour postgres

---
 scripts/.directories.txt                    |  1 +
 scripts/server-postgres/.list_files.txt     |  1 +
 scripts/server-postgres/setup-postgres17.sh | 49 +++++++++++++++++++++
 3 files changed, 51 insertions(+)
 create mode 100644 scripts/server-postgres/.list_files.txt
 create mode 100644 scripts/server-postgres/setup-postgres17.sh

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."