diff --git a/docs/catalogue-services.md b/docs/catalogue-services.md index 0a758f7..0acc7c6 100644 --- a/docs/catalogue-services.md +++ b/docs/catalogue-services.md @@ -55,16 +55,15 @@ natif. Restent « code non éprouvé » : `serveur_sendmail`. > (Keycloak derrière le reverse-proxy TLS) n'est pas câblé. Keycloak tourne et s'authentifie, mais > n'est pas encore fédéré ni exposé. À faire pour clore le SSO. -**Échafaudages** (playbook-ancre `debug` « reste à définir », **sans rôle**) : -`serveur_nextcloud`, `serveur_collabora`, `client_supervision`, `serveur_web_frontal`, -`serveur_web_dorsal`. Les capacités *collaboration* et *couche web applicative* sont câblées -par convention mais pas encore implémentées. +**Cruft retirée (consolidation 2026-07-03).** Supprimés : les 8 dossiers-catégories inertes +(`roles/{applications,backup,database,identity,monitoring,proxmox,storage,web}/`, README seuls, +vestiges d'une taxonomie abandonnée — l'architecture réelle est **plate** `serveur_*` / `client_*`) +et les 5 playbooks-échafaudages `debug` sans rôle (`serveur_nextcloud`, `serveur_collabora`, +`client_supervision`, `serveur_web_frontal`, `serveur_web_dorsal`). -**Rôles-catégories inertes** (dossiers `roles//` réduits à un `README.md`, jamais câblés) : -`applications`, `backup`, `database`, `identity`, `monitoring`, `proxmox`, `storage`, `web`. -L'architecture réelle est **plate** (`serveur_*` / `client_*`) ; ces dossiers sont des -vestiges d'un regroupement par catégorie abandonné — à supprimer ou réactiver lors d'une -consolidation ultérieure. +**Capacités futures encore à implémenter** (intention, plus de code mort) : *collaboration* +(Nextcloud/Collabora) et *couche web applicative* (frontal/dorsal). Le jour venu, elles se font +en rôles `serveur_*` normaux avec leur playbook de groupe. ## Services centraux diff --git a/playbooks/groupes/client_supervision.yml b/playbooks/groupes/client_supervision.yml deleted file mode 100644 index a9010f4..0000000 --- a/playbooks/groupes/client_supervision.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -- name: Appliquer le groupe client_supervision - hosts: client_supervision - become: true - gather_facts: true - - tasks: - - name: Indiquer que l'intégration cliente supervision reste à définir - ansible.builtin.debug: - msg: "Aucun rôle n'est encore associé au groupe client_supervision." diff --git a/playbooks/groupes/serveur_collabora.yml b/playbooks/groupes/serveur_collabora.yml deleted file mode 100644 index fa02013..0000000 --- a/playbooks/groupes/serveur_collabora.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -- name: Appliquer le groupe serveur_collabora - hosts: serveur_collabora - become: true - gather_facts: true - - tasks: - - name: Indiquer que le service Collabora reste à définir - ansible.builtin.debug: - msg: "Aucun rôle n'est encore associé au groupe serveur_collabora." diff --git a/playbooks/groupes/serveur_nextcloud.yml b/playbooks/groupes/serveur_nextcloud.yml deleted file mode 100644 index e7c318e..0000000 --- a/playbooks/groupes/serveur_nextcloud.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -- name: Appliquer le groupe serveur_nextcloud - hosts: serveur_nextcloud - become: true - gather_facts: true - - tasks: - - name: Indiquer que le service Nextcloud reste à définir - ansible.builtin.debug: - msg: "Aucun rôle n'est encore associé au groupe serveur_nextcloud." diff --git a/playbooks/groupes/serveur_web_dorsal.yml b/playbooks/groupes/serveur_web_dorsal.yml deleted file mode 100644 index 44a1c84..0000000 --- a/playbooks/groupes/serveur_web_dorsal.yml +++ /dev/null @@ -1,43 +0,0 @@ ---- -- name: Appliquer le groupe serveur_web_dorsal - hosts: serveur_web_dorsal - become: true - gather_facts: true - - pre_tasks: - - name: Vérifier que la cible est Debian - ansible.builtin.assert: - that: - - ansible_facts.distribution == "Debian" - fail_msg: "Ce playbook est prévu pour Debian." - - tasks: - # Couche application : une VM dorsale peut porter PLUSIEURS applications. - # On itere donc sur les applications mappees a cet hote (instance/plan/applications.yml), - # chacune resolvant ses bases via son DSN (regle partagee, filter plugin). - - name: Charger les registres applications et bases - ansible.builtin.include_vars: - file: "{{ item }}" - loop: - - "{{ setops_plan_dir }}/applications.yml" - - "{{ setops_plan_dir }}/bases-donnees.yml" - - - name: Determiner les applications instanciees sur cet hote - ansible.builtin.set_fact: - applications_hote: "{{ {'applications': applications | default({})} | applications_de_hote(inventory_hostname) }}" - registre_bd: "{{ {'serveurs_bd': serveurs_bd | default({}), 'bases_donnees': bases_donnees | default({})} }}" - - - name: Afficher la chaine application -> bases (scaffold ; le deploiement reel s'insere ici) - ansible.builtin.debug: - msg: >- - {{ item.id }} [{{ item.groupe }}] -> - {{ (registre_bd | bases_de_application(item.id, item.groupe, inventory_hostname)) - | map(attribute='cle') | list }} - loop: "{{ applications_hote }}" - loop_control: - label: "{{ item.id }}" - - - name: Avertir si l'hote ne porte aucune application - ansible.builtin.debug: - msg: "Aucune application declaree sur cet hote (instance/plan/applications.yml). Couche dorsale : API, traitement." - when: applications_hote | length == 0 diff --git a/playbooks/groupes/serveur_web_frontal.yml b/playbooks/groupes/serveur_web_frontal.yml deleted file mode 100644 index 47d3bdf..0000000 --- a/playbooks/groupes/serveur_web_frontal.yml +++ /dev/null @@ -1,43 +0,0 @@ ---- -- name: Appliquer le groupe serveur_web_frontal - hosts: serveur_web_frontal - become: true - gather_facts: true - - pre_tasks: - - name: Vérifier que la cible est Debian - ansible.builtin.assert: - that: - - ansible_facts.distribution == "Debian" - fail_msg: "Ce playbook est prévu pour Debian." - - tasks: - # Couche presentation : une VM frontale peut porter PLUSIEURS applications. - # On itere sur les applications mappees a cet hote (instance/plan/applications.yml), - # chacune resolvant ses bases via son DSN (regle partagee, filter plugin). - - name: Charger les registres applications et bases - ansible.builtin.include_vars: - file: "{{ item }}" - loop: - - "{{ setops_plan_dir }}/applications.yml" - - "{{ setops_plan_dir }}/bases-donnees.yml" - - - name: Determiner les applications instanciees sur cet hote - ansible.builtin.set_fact: - applications_hote: "{{ {'applications': applications | default({})} | applications_de_hote(inventory_hostname) }}" - registre_bd: "{{ {'serveurs_bd': serveurs_bd | default({}), 'bases_donnees': bases_donnees | default({})} }}" - - - name: Afficher la chaine application -> bases (scaffold ; le deploiement reel s'insere ici) - ansible.builtin.debug: - msg: >- - {{ item.id }} [{{ item.groupe }}] -> - {{ (registre_bd | bases_de_application(item.id, item.groupe, inventory_hostname)) - | map(attribute='cle') | list }} - loop: "{{ applications_hote }}" - loop_control: - label: "{{ item.id }}" - - - name: Avertir si l'hote ne porte aucune application - ansible.builtin.debug: - msg: "Aucune application declaree sur cet hote (instance/plan/applications.yml). Couche presentation, derriere serveur_nginx." - when: applications_hote | length == 0 diff --git a/roles/applications/README.md b/roles/applications/README.md deleted file mode 100644 index 551f6d5..0000000 --- a/roles/applications/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# applications - -Rôles applications : services applicatifs internes. diff --git a/roles/backup/README.md b/roles/backup/README.md deleted file mode 100644 index 45f6de2..0000000 --- a/roles/backup/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# backup - -Rôles backup : clients, politiques, intégration PBS ou autres. diff --git a/roles/database/README.md b/roles/database/README.md deleted file mode 100644 index e3b44de..0000000 --- a/roles/database/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# database - -Rôles database : PostgreSQL, MariaDB, sauvegardes, réplication. diff --git a/roles/identity/README.md b/roles/identity/README.md deleted file mode 100644 index cc176a0..0000000 --- a/roles/identity/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# identity - -Rôles identity : IAM, Keycloak, annuaires. diff --git a/roles/monitoring/README.md b/roles/monitoring/README.md deleted file mode 100644 index 715e594..0000000 --- a/roles/monitoring/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# monitoring - -Rôles monitoring : agents, sondes, exporters, alertes. diff --git a/roles/proxmox/README.md b/roles/proxmox/README.md deleted file mode 100644 index 0197b68..0000000 --- a/roles/proxmox/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# proxmox - -Rôles Proxmox : opérations hyperviseur, avec prudence. diff --git a/roles/storage/README.md b/roles/storage/README.md deleted file mode 100644 index b11086b..0000000 --- a/roles/storage/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# storage - -Rôles storage : montages, clients NFS/iSCSI, volumes. diff --git a/roles/web/README.md b/roles/web/README.md deleted file mode 100644 index c14dd77..0000000 --- a/roles/web/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# web - -Couche applicative web, distincte de l'edge `serveur_nginx`. - -- frontaux : présentation web (UI, rendu, assets), groupe `serveur_web_frontal` ; -- dorsaux : application web (API, traitement), groupe `serveur_web_dorsal`. - -Le mandataire inverse, la terminaison TLS et le WAF relèvent de `serveur_nginx`, pas de ce rôle. diff --git a/tl.ini b/tl.ini new file mode 100644 index 0000000..4d841fb --- /dev/null +++ b/tl.ini @@ -0,0 +1,12 @@ +# ══════════════════════════════════════════════════════════════════════════════ +# Inventaire — Technolibre +# ══════════════════════════════════════════════════════════════════════════════ + +[all:vars] +ansible_user=ansible +ansible_ssh_private_key_file=/home/danallaire/.ssh/id_ed25519_ansible_chezlepro + +# ── Hôtes gérés ─────────────────────────────────────────────────────────────── +[modeles_vm] +10.10.1.66 +10.10.1.10