Compare commits

...

4 Commits

Author SHA1 Message Date
Cédric Abonnel 3d64c538af chmod +x 2025-03-24 12:24:53 +01:00
Cédric Abonnel d9c2e20402 create script create_role for pg 2025-03-24 12:23:51 +01:00
Cédric Abonnel 12cbbd0a6a add create_db for pg 2025-03-24 12:21:19 +01:00
Cédric Abonnel bd74da92ff ajout script pour postgres 2025-03-24 12:16:58 +01:00
14 changed files with 134 additions and 0 deletions

View File

@ -3,3 +3,4 @@ server-dhcp
server-httpd
server-mail
server-mariadb
server-postgres

0
scripts/server-httpd/add_domain.sh Normal file → Executable file
View File

0
scripts/server-httpd/add_domain_ssl.sh Normal file → Executable file
View File

0
scripts/server-httpd/install-php8-3.sh Normal file → Executable file
View File

0
scripts/server-httpd/set-permissions-www.sh Normal file → Executable file
View File

0
scripts/server-httpd/setup_httpd.sh Normal file → Executable file
View File

0
scripts/server-mariadb/check_mysql_secure.sh Normal file → Executable file
View File

0
scripts/server-mariadb/create_db.sh Normal file → Executable file
View File

0
scripts/server-mariadb/set_root_password.sh Normal file → Executable file
View File

0
scripts/server-mariadb/setup_mariadb.sh Normal file → Executable file
View File

View File

@ -0,0 +1,3 @@
create_pg_db.sh
create_pg_role.sh
setup-postgres17.sh

View File

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

View File

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

View File

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