> ## Documentation Index
> Fetch the complete documentation index at: https://infra-docs.kaeyros.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Les rôles Ansible du dépôt ansible-roles

> Catalogue des rôles réutilisables du dépôt ansible-roles : hardening, sécurité, Docker, monitoring et leurs variables clés.

Le dépôt `ansible-roles` organise la configuration de la plateforme en rôles réutilisables. Chaque rôle encapsule une responsabilité précise (sécurité, conteneurisation, télémétrie) et expose des variables pour s'adapter aux environnements dev, staging et production.

## Tableau des rôles

| Rôle | Description | Variables clés | Emplacement des variables |
| - | - | - | - |
| `common` | Paquets de base, timezone, utilisateurs système | `common_packages`, `common_timezone`, `common_users` | `inventory/<env>/group_vars/all.yml` |
| `ssh-hardening` | Désactivation root, clés uniquement, ports, algorithmes | `ssh_port`, `ssh_permit_root_login`, `ssh_allowed_users` | `inventory/<env>/group_vars/all.yml` |
| `ufw` | Pare-feu simple avec règles par défaut deny/allow | `ufw_default_policy`, `ufw_allowed_ports`, `ufw_allowed_hosts` | `inventory/<env>/group_vars/all.yml` |
| `fail2ban` | Bannissement automatique des IPs malveillantes | `fail2ban_bantime`, `fail2ban_maxretry`, `fail2ban_findtime` | `inventory/<env>/group_vars/all.yml` |
| `psad` | Détection d'anomalies sur le pare-feu (scan de ports) | `psad_alert_email`, `psad_alert_level` | `inventory/<env>/group_vars/all.yml` |
| `clamav` | Antivirus avec scan périodique et mise à jour des signatures | `clamav_scan_schedule`, `clamav_alert_email` | `inventory/<env>/group_vars/all.yml` |
| `rkhunter` | Détection de rootkits et backdoors | `rkhunter_mail_on_warning`, `rkhunter_cron_schedule` | `inventory/<env>/group_vars/all.yml` |
| `auditd` | Journalisation détaillée des appels système | `auditd_rules`, `auditd_log_format` | `inventory/<env>/group_vars/all.yml` |
| `lynis` | Audit automatique de conformité sécurité | `lynis_cron_schedule`, `lynis_report_directory` | `inventory/<env>/group_vars/all.yml` |
| `docker` | Installation du moteur Docker et configuration daemon | `docker_storage_driver`, `docker_log_driver`, `docker_insecure_registries` | `inventory/<env>/group_vars/all.yml` |
| `node-exporter` | Exporteur Prometheus pour les métriques système | `node_exporter_port`, `node_exporter_enabled_collectors` | `inventory/<env>/group_vars/all.yml` |
| `vmagent` | Agent de collecte VictoriaMetrics (remote write) | `vmagent_remote_write_url`, `vmagent_scrape_configs` | `inventory/<env>/group_vars/all.yml` |
| `wazuh-agent` | Agent SIEM Wazuh pour la détection d'intrusion | `wazuh_manager_ip`, `wazuh_agent_name`, `wazuh_agent_group` | `inventory/<env>/group_vars/all.yml` |

> [!NOTE]
>
> Les valeurs par défaut de chaque rôle sont définies dans `roles/<role>/defaults/main.yml`. Elles sont surchargées par les variables d'inventaire si elles sont redéfinies dans `group_vars` ou `host_vars`.

## Organisation des rôles

```text theme={null}
roles/
├── common/
├── ssh-hardening/
├── ufw/
├── fail2ban/
├── psad/
├── clamav/
├── rkhunter/
├── auditd/
├── lynis/
├── docker/
├── node-exporter/
├── vmagent/
└── wazuh-agent/
```

Chaque rôle suit la structure standard Ansible :

```text theme={null}
roles/<role>/
├── defaults/
│   └── main.yml       # Valeurs par défaut
├── tasks/
│   └── main.yml       # Tâches à exécuter
├── handlers/
│   └── main.yml       # Handlers (redémarrages)
├── templates/
│   └── *.j2           # Templates Jinja2
└── files/
    └── *              # Fichiers statiques
```

## Variables sensibles

Les secrets (clés, tokens, mots de passe) ne doivent jamais figurer en clair dans les `defaults`. Ils sont stockés dans les fichiers chiffrés Ansible Vault :

```bash theme={null}
ansible-vault edit inventory/prod/group_vars/all.yml
```

> [!TIP]
>
> Pour consulter la liste complète des variables disponibles dans un rôle sans ouvrir l'éditeur, lisez le fichier `defaults/main.yml` du rôle concerné.

## Contact

Pour ajouter un nouveau rôle ou modifier le comportement d'un rôle existant, contactez l'équipe DevOps à [devops@kaeyros-analytics.com](mailto:devops@kaeyros-analytics.com).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.