> ## 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.

# Ansible : provisionner nos serveurs de A à Z

> Découvrez le rôle d'Ansible dans la stack Kaeyros Analytics : bootstrap serveur, sécurité, configuration Docker et Kubernetes via le dépôt ansible-roles.

Ansible est l'outil de provisionnement et de configuration de tous les serveurs de la plateforme Kaeyros Analytics. Il garantit que chaque machine part d'une base Ubuntu standardisée pour aboutir à un nœud sécurisé, monitoré et prêt à recevoir des workloads Docker ou Kubernetes.

> [!NOTE]
>
> Le provisionnement matériel chez Hetzner reste une étape manuelle. Ansible intervient uniquement après l'installation d'Ubuntu via `installimage`.

## Dépôt source de vérité

Le dépôt `ansible-roles` centralise l'ensemble de la logique de configuration :

```bash theme={null}
git clone git@github.com:kaeyros-analytics-org/ansible-roles.git
```

Ce dépôt est structuré en trois grandes zones :

| Zone | Emplacement | Contenu |
| - | - | - |
| Rôles réutilisables | `roles/` | Logique métier (hardening, Docker, monitoring, etc.) |
| Playbooks par serveur | `playbooks/` | Orchestration des rôles par type de machine |
| Inventaires | `inventory/` | Variables et hôtes par environnement (dev, stg, prod) |

## Ce qu'Ansible configure

Ansible couvre l'ensemble du cycle de vie d'un serveur, de son premier démarrage à son intégration dans le cluster.

**1. Bootstrap système**

Mise à jour des paquets, timezone, création des utilisateurs administratifs et déploiement des clés SSH.

**2. Sécurisation**

Application des rôles `ssh-hardening`, `ufw`, `fail2ban`, `psad`, `clamav`, `rkhunter`, `auditd` et `lynis`.

**3. Conteneurisation**

Installation et configuration de Docker, ainsi que des composants kubelet pour les nœuds Kubernetes.

**4. Monitoring**

Déploiement des agents `node-exporter`, `vmagent` et `wazuh-agent` pour la télémétrie et la sécurité.

## Pourquoi Ansible

Le choix d'Ansible repose sur trois avantages clés pour l'équipe Kaeyros :

> **Sans agent**
>
> Aucun daemon permanent requis sur les cibles. Seul SSH et Python sont nécessaires.

> **Idempotence**
>
> Un playbook peut être relancé sans risque. Seules les divergences sont corrigées.

> **Traçabilité**
>
> Chaque modification est versionnée dans Git, auditable et reproductible d'un environnement à l'autre.

## Inventaires par environnement

Les variables spécifiques à chaque environnement sont isolées dans des fichiers dédiés :

```text theme={null}
inventory/
├── dev/
│   ├── hosts.yml
│   └── group_vars/
│       └── all.yml
├── stg/
│   ├── hosts.yml
│   └── group_vars/
│       └── all.yml
└── prod/
    ├── hosts.yml
    └── group_vars/
        └── all.yml
```

Les secrets sensibles (clés API, mots de passe, tokens) sont chiffrés avec **Ansible Vault** et stockés dans les `group_vars`.

## Contact

Pour toute question sur le provisionnement Ansible, 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.