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
|
> (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.
|
> n'est pas encore fédéré ni exposé. À faire pour clore le SSO.
|
||||||
|
|
||||||
**Échafaudages** (playbook-ancre `debug` « reste à définir », **sans rôle**) :
|
**Cruft retirée (consolidation 2026-07-03).** Supprimés : les 8 dossiers-catégories inertes
|
||||||
`serveur_nextcloud`, `serveur_collabora`, `client_supervision`, `serveur_web_frontal`,
|
(`roles/{applications,backup,database,identity,monitoring,proxmox,storage,web}/`, README seuls,
|
||||||
`serveur_web_dorsal`. Les capacités *collaboration* et *couche web applicative* sont câblées
|
vestiges d'une taxonomie abandonnée — l'architecture réelle est **plate** `serveur_*` / `client_*`)
|
||||||
par convention mais pas encore implémentées.
|
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) :
|
**Capacités futures encore à implémenter** (intention, plus de code mort) : *collaboration*
|
||||||
`applications`, `backup`, `database`, `identity`, `monitoring`, `proxmox`, `storage`, `web`.
|
(Nextcloud/Collabora) et *couche web applicative* (frontal/dorsal). Le jour venu, elles se font
|
||||||
L'architecture réelle est **plate** (`serveur_*` / `client_*`) ; ces dossiers sont des
|
en rôles `serveur_*` normaux avec leur playbook de groupe.
|
||||||
vestiges d'un regroupement par catégorie abandonné — à supprimer ou réactiver lors d'une
|
|
||||||
consolidation ultérieure.
|
|
||||||
|
|
||||||
## Services centraux
|
## 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