Consolider : retirer la cruft (8 dossiers-catégories + 5 échafaudages morts)
Supprimés : roles/{applications,backup,database,identity,monitoring,
proxmox,storage,web}/ (README seuls, taxonomie abandonnée — l'archi est
plate serveur_*/client_*) et les playbooks-échafaudages debug sans rôle
(nextcloud, collabora, client_supervision, web_frontal, web_dorsal).
Aucun host n'utilise ces groupes ; l'intention des capacités futures
reste documentée dans docs/catalogue-services.md.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
b60c5dc963
commit
3c1cd3e90e
15 changed files with 20 additions and 154 deletions
|
|
@ -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/<x>/` 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
|
||||
|
||||
|
|
|
|||
|
|
@ -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."
|
||||
|
|
@ -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."
|
||||
|
|
@ -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."
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
# applications
|
||||
|
||||
Rôles applications : services applicatifs internes.
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
# backup
|
||||
|
||||
Rôles backup : clients, politiques, intégration PBS ou autres.
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
# database
|
||||
|
||||
Rôles database : PostgreSQL, MariaDB, sauvegardes, réplication.
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
# identity
|
||||
|
||||
Rôles identity : IAM, Keycloak, annuaires.
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
# monitoring
|
||||
|
||||
Rôles monitoring : agents, sondes, exporters, alertes.
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
# proxmox
|
||||
|
||||
Rôles Proxmox : opérations hyperviseur, avec prudence.
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
# storage
|
||||
|
||||
Rôles storage : montages, clients NFS/iSCSI, volumes.
|
||||
|
|
@ -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.
|
||||
12
tl.ini
Normal file
12
tl.ini
Normal file
|
|
@ -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
|
||||
Loading…
Reference in a new issue