Compare commits
4 Commits
5e663d8925
...
3d64c538af
Author | SHA1 | Date |
---|---|---|
|
3d64c538af | |
|
d9c2e20402 | |
|
12cbbd0a6a | |
|
bd74da92ff |
|
@ -3,3 +3,4 @@ server-dhcp
|
|||
server-httpd
|
||||
server-mail
|
||||
server-mariadb
|
||||
server-postgres
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
create_pg_db.sh
|
||||
create_pg_role.sh
|
||||
setup-postgres17.sh
|
|
@ -0,0 +1,41 @@
|
|||
#!/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
|
||||
|
||||
DB_NAME="$1"
|
||||
DB_USER="$2"
|
||||
|
||||
if [[ -z "$DB_NAME" || -z "$DB_USER" ]]; then
|
||||
echo "❌ Usage: $0 <nom_base_de_donnees> <utilisateur_postgresql>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "🔎 Vérification de l'existence de l'utilisateur PostgreSQL '$DB_USER'..."
|
||||
USER_EXISTS=$(sudo -u postgres psql -tAc "SELECT 1 FROM pg_roles WHERE rolname='${DB_USER}'")
|
||||
|
||||
if [[ "$USER_EXISTS" != "1" ]]; then
|
||||
echo "❌ L'utilisateur '$DB_USER' n'existe pas dans PostgreSQL."
|
||||
exit 2
|
||||
else
|
||||
echo "✅ L'utilisateur '$DB_USER' existe."
|
||||
fi
|
||||
|
||||
echo "🔎 Vérification de l'existence de la base de données '$DB_NAME'..."
|
||||
DB_EXISTS=$(sudo -u postgres psql -tAc "SELECT 1 FROM pg_database WHERE datname='${DB_NAME}'")
|
||||
|
||||
if [[ "$DB_EXISTS" == "1" ]]; then
|
||||
echo "⚠️ La base de données '$DB_NAME' existe déjà."
|
||||
else
|
||||
echo "🛠 Création de la base de données '$DB_NAME' avec le propriétaire '$DB_USER'..."
|
||||
sudo -u postgres createdb -O "$DB_USER" "$DB_NAME"
|
||||
echo "✅ Base de données '$DB_NAME' créée avec succès."
|
||||
fi
|
||||
|
||||
echo "🎉 Opération terminée."
|
|
@ -0,0 +1,40 @@
|
|||
#!/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
|
||||
|
||||
ROLE_NAME="$1"
|
||||
|
||||
if [[ -z "$ROLE_NAME" ]]; then
|
||||
echo "❌ Usage: $0 <nom_du_role>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "🔎 Vérification de l'existence du rôle PostgreSQL '$ROLE_NAME'..."
|
||||
ROLE_EXISTS=$(sudo -u postgres psql -tAc "SELECT 1 FROM pg_roles WHERE rolname='${ROLE_NAME}'")
|
||||
|
||||
if [[ "$ROLE_EXISTS" == "1" ]]; then
|
||||
echo "⚠️ Le rôle '$ROLE_NAME' existe déjà."
|
||||
else
|
||||
echo "🔐 Génération d'un mot de passe fort pour le rôle '$ROLE_NAME'..."
|
||||
ROLE_PASSWORD=$(generate_token 20)
|
||||
|
||||
echo "🛠 Création du rôle '$ROLE_NAME' avec LOGIN et mot de passe..."
|
||||
sudo -u postgres psql -c "CREATE ROLE ${ROLE_NAME} WITH LOGIN PASSWORD '${ROLE_PASSWORD}';"
|
||||
|
||||
echo ""
|
||||
echo "✅ Rôle '$ROLE_NAME' créé avec succès."
|
||||
echo "-------------------------------------------"
|
||||
echo " Nom du rôle : ${ROLE_NAME}"
|
||||
echo " Mot de passe : ${ROLE_PASSWORD}"
|
||||
echo "-------------------------------------------"
|
||||
echo " Pensez à sauvegarder ces informations."
|
||||
fi
|
||||
|
||||
echo "🎉 Opération terminée."
|
|
@ -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."
|
Loading…
Reference in New Issue