chore: update

This commit is contained in:
2026-02-18 21:52:32 +01:00
parent aed786cf2c
commit 1f2e4e96dd
399 changed files with 4173 additions and 10273 deletions
+137 -58
View File
@@ -3,101 +3,180 @@
# PostgreSQL Installation (vm-postgres uniquement)
# ============================================
- name: Installation et configuration de PostgreSQL
hosts: postgres
hosts: uber-stup
become: true
gather_facts: true
tasks:
- name: Installer les dépendances système
apt:
# ============================================================
# Dépendances requises
# ============================================================
- name: Installer les dépendances pour le dépôt APT
ansible.builtin.apt:
name:
- wget
- gnupg2
- lsb-release
- curl
- ca-certificates
- apt-transport-https
- acl # Nécessaire pour become_user
- lsb-release
- python3-psycopg2
- acl
state: present
update_cache: yes
# ============================================================
# Ajout du dépôt officiel PostgreSQL
# ============================================================
- name: Ajouter la clé GPG du dépôt PostgreSQL
apt_key:
ansible.builtin.apt_key:
url: https://www.postgresql.org/media/keys/ACCC4CF8.asc
state: present
- name: Ajouter le dépôt PostgreSQL
apt_repository:
- name: Ajouter le dépôt PostgreSQL 16
ansible.builtin.apt_repository:
repo: "deb http://apt.postgresql.org/pub/repos/apt {{ ansible_distribution_release }}-pgdg main"
state: present
filename: pgdg
- name: Installer PostgreSQL {{ postgres_version }}
apt:
# ============================================================
# Installation PostgreSQL 16
# ============================================================
- name: Installer PostgreSQL 16
ansible.builtin.apt:
name:
- postgresql-{{ postgres_version }}
- postgresql-contrib-{{ postgres_version }}
- python3-psycopg2
- "postgresql-{{ pg_version }}"
- "postgresql-client-{{ pg_version }}"
- "postgresql-contrib-{{ pg_version }}"
state: present
update_cache: yes
- name: S'assurer que PostgreSQL est démarré
systemd:
- name: Démarrer et activer PostgreSQL
ansible.builtin.systemd:
name: postgresql
state: started
enabled: yes
- name: Définir le mot de passe du user postgres
postgresql_user:
name: postgres
password: "{{ postgres_password }}"
state: present
become_user: postgres
- name: Créer les bases de données PostgreSQL
postgresql_db:
name: "{{ item.name }}"
owner: postgres
state: present
loop: "{{ postgres_databases }}"
become_user: postgres
- name: Configurer pg_hba.conf pour autoriser le backend
blockinfile:
path: "/etc/postgresql/{{ postgres_version }}/main/pg_hba.conf"
block: |
# Connexions locales
local all postgres peer
host all postgres 127.0.0.1/32 scram-sha-256
# Connexions backend LAN
host all postgres 192.168.1.0/24 scram-sha-256
marker: "# {mark} ANSIBLE MANAGED BLOCK"
notify: Redémarrer PostgreSQL
tags:
- reload
- name: Configurer PostgreSQL pour écouter sur toutes les interfaces
lineinfile:
path: "/etc/postgresql/{{ postgres_version }}/main/postgresql.conf"
# ============================================================
# Configuration PostgreSQL
# ============================================================
- name: Configurer l'écoute sur localhost
ansible.builtin.lineinfile:
path: "/etc/postgresql/{{ pg_version }}/main/postgresql.conf"
regexp: "^#?listen_addresses"
line: "listen_addresses = '*'"
line: "listen_addresses = 'localhost'"
notify: Restart postgresql
- name: Configurer le port
ansible.builtin.lineinfile:
path: "/etc/postgresql/{{ pg_version }}/main/postgresql.conf"
regexp: "^#?port"
line: "port = {{ db_port }}"
notify: Restart postgresql
# ============================================================
# Locale requise
# ============================================================
- name: Générer la locale fr_FR.UTF-8
ansible.builtin.command: locale-gen fr_FR.UTF-8
register: locale_gen
changed_when: "'Generation complete' in locale_gen.stdout"
- name: Mettre à jour les locales
ansible.builtin.command: update-locale
when: locale_gen.changed
# ============================================================
# Création de la base de données et configuration utilisateur
# ============================================================
- name: Définir le mot de passe de l'utilisateur postgres
become_user: postgres
ansible.builtin.postgresql_user:
name: "{{ db_user }}"
password: "{{ db_password }}"
state: present
notify: Redémarrer PostgreSQL
tags:
- reload
- name: Vérifier si la base de données existe
become_user: postgres
ansible.builtin.command: psql -tAc "SELECT 1 FROM pg_database WHERE datname='{{ db_name }}'"
register: db_exists
changed_when: false
- name: Créer la base de données avec ICU
become_user: postgres
ansible.builtin.command: >
psql -c "CREATE DATABASE {{ db_name }}
OWNER {{ db_user }}
ENCODING 'UTF8'
LOCALE_PROVIDER icu
ICU_LOCALE 'fr-FR'
TEMPLATE template0"
when: db_exists.stdout != "1"
- name: Accorder tous les privilèges sur la base
become_user: postgres
ansible.builtin.postgresql_privs:
db: "{{ db_name }}"
role: "{{ db_user }}"
type: database
privs: ALL
state: present
# ============================================================
# Authentification pg_hba.conf
# ============================================================
- name: Configurer l'authentification md5 pour les connexions locales
ansible.builtin.postgresql_pg_hba:
dest: "/etc/postgresql/{{ pg_version }}/main/pg_hba.conf"
contype: host
databases: "{{ db_name }}"
users: "{{ db_user }}"
source: "127.0.0.1/32"
method: md5
notify: Restart postgresql
- name: Configurer l'authentification md5 pour IPv6 local
ansible.builtin.postgresql_pg_hba:
dest: "/etc/postgresql/{{ pg_version }}/main/pg_hba.conf"
contype: host
databases: "{{ db_name }}"
users: "{{ db_user }}"
source: "::1/128"
method: md5
notify: Restart postgresql
# ============================================================
# Vérification
# ============================================================
- name: Vérifier la version de PostgreSQL
become_user: postgres
ansible.builtin.command: psql --version
register: pg_version_check
changed_when: false
- name: Afficher la version
ansible.builtin.debug:
msg: "{{ pg_version_check.stdout }}"
- name: Vérifier que la base existe
become_user: postgres
ansible.builtin.command: psql -lqt
register: pg_databases
changed_when: false
- name: Afficher les bases de données
ansible.builtin.debug:
msg: "{{ pg_databases.stdout_lines }}"
handlers:
- name: Redémarrer PostgreSQL
systemd:
- name: Restart postgresql
ansible.builtin.systemd:
name: postgresql
state: restarted
tags:
- reload
# ============================================
# Redis Installation (vm-redis uniquement)
# ============================================
- name: Installation et configuration de Redis
hosts: redis
hosts: uber-stup
become: true
gather_facts: true