02-ce-que-je-construis/bundles/tlr-ansible.md

tlr-ansible — IaC déploiements Telaria

tlr-ansible est l'Infrastructure as Code de l'écosystème Telaria. Il automatise et standardise tous les déploiements Symfony : vhosts Apache, workers systemd, configurations PHP-FPM, gestion des certificats, variables d'environnement. Aucun vhost n'existe en production sans passer par Ansible.

Champ Valeur
Repo GitHub <owner>/tlr-ansible (privé)
Stack Ansible sur WSL2 (Windows)
Environnements local (zeus/WSL2) · dev (poseidon, LAN) · staging (telaria-dev, VPS) · production (VPS OVH)
Pilote telaria-app (mĂŞme release flow infrastructure)

Rôle dans l'écosystème

tlr-ansible est le seul chemin vers la production. Tout déploiement d'une app Telaria (telaria.fr, mathieuadrien.fr, adoption-app…) passe par ses playbooks. Cette contrainte garantit :

  • ReproductibilitĂ© : un vhost créé en staging est identique en prod.
  • TraçabilitĂ© : chaque changement d'infrastructure est versionnĂ© dans Git.
  • SĂ©curitĂ© : les secrets (clĂ©s DKIM, DSN mail, API keys) sont gĂ©rĂ©s via group_vars chiffrĂ©s, jamais codĂ©s en dur.

Architecture

Inventaires

inventory/
├── development/   # WSL2 local — tests playbooks
├── dev/           # poseidon (Ubuntu 26.04 LTS, réseau local LAN)
└── production/    # VPS OVH (Ubuntu 26.04 LTS)

Chaque inventaire a ses group_vars/ propres — variables d'environnement, chemins, credentials spécifiques à l'env.

RĂ´les principaux

Rôle Responsabilité
symfony Clone du repo, Composer install, migrations, cache warmup, permissions www-data
vhosts Génération et activation des vhosts Apache (HTTP + redirect HTTPS + SSL)
workers Unités systemd pour les Messenger workers (queues asynchrones)
mail Configuration DKIM, variables MAILER_* dans .env.local
system Paquets système, PHP-FPM pools, UFW, Fail2Ban

Pratiques clés

Vhost Symfony — pattern canonique

Tout vhost Symfony de l'écosystème Telaria suit ce pattern :

<VirtualHost *:443>
    DocumentRoot /var/www/{app}/public

    <Directory /var/www/{app}/public>
        FallbackResource /index.php
        <FilesMatch \.php$>
            SetHandler "proxy:unix:/run/php/php8.5-fpm-{app}.sock|fcgi://localhost"
        </FilesMatch>
    </Directory>

    # Redirect HTTPS, SSL, headers sécurité…
</VirtualHost>

FallbackResource /index.php est la clé du routing Symfony — sans lui, toutes les routes hors fichiers statiques retournent 404.

asset-map:compile — toujours en www-data

sudo -u www-data php bin/console asset-map:compile --env=prod

Cette commande vide public/assets/ avant d'écrire. Lancée en mauvais utilisateur → Permission denied → dossier vide en prod. Toujours www-data, jamais ubuntu.

staging obligatoire avant prod

staging (telaria-dev/adoption-dev, VPS OVH) est l'environnement d'intégration. Tout déploiement est validé en staging en conditions réelles (navigateur externe, pas curl en loopback) avant de passer en production. dev (poseidon, LAN) sert au développement et aux premiers tests fonctionnels.

Premier déploiement — initial_deploy

Pour une nouvelle app, le playbook initial_deploy gère la séquence complète : clone, dépendances, BDD (création + migrations), vhost, SSL, workers. Les déploiements suivants utilisent le playbook de mise à jour (deploy).


Stack

Composant Version
Ansible sur WSL2 (Windows 11)
dev (poseidon) Ubuntu 26.04 LTS
prod (VPS OVH) Ubuntu 26.04 LTS
PHP-FPM 8.5 (pool par app)
Apache 2.4

Voir aussi

Assistant documentaire

Posez une question sur la documentation. Les réponses citent leurs sources — un clic ouvre le document à gauche.

Loading…
Loading the web debug toolbar…
Attempt #