Aujourd’hui, de plus en plus de professionnels de l’IT — sysadmins, DevOps, freelances et agences web — recherchent des solutions pour déployer WordPress de façon automatisée, rapide, et sécurisée.
Installer un WordPress “à la main”, c’est bien pour un site mais quand il s’agit de déployer à la chaîne, de migrer des bases, de standardiser pour des clients exigeants, l’automatisation devient indispensable.

En tant que spécialiste Linux, DevOps et fondateur de linux-man.fr, j’ai été confronté à ce besoin à plusieurs reprises pour mes clients. C’est pourquoi j’ai conçu et publié un rôle Ansible WordPress, maintenant disponible sur Ansible Galaxy, pour répondre à ces problématiques récurrentes :
- déployer WordPress en quelques minutes,
- avec la configuration souhaitée (Nginx/Apache/Caddy, HTTPS auto, import SQL, sécurité avancée…),
- et garantir des déploiements reproductibles, fiables et documentés.
Pourquoi j’ai créé/forké ce rôle WordPress Ansible ?
Comme souvent dans le monde open-source, l’existant est une source d’inspiration.
Je suis parti du projet MakarenaLabs/ansible-role-wordpress, mais, comme beaucoup, j’ai eu des besoins récurrents pour mes clients :
- Support complet Nginx + HTTPS (auto-signé ou Let’s Encrypt),
- Gestion simple de l’import de dump SQL pour la migration/restauration,
- Plus d’options de personnalisation (multi-webservers, charset/collation, sécurité, etc.),
- Documentation et variables adaptées aux déploiements pros.
C’est pour ça que je n’hésite jamais à forker un projet Ansible, l’adapter, l’améliorer et publier mes propres évolutions pour en faire profiter la communauté.
Forker et améliorer un projet open-source est souvent la meilleure façon de répondre à des besoins précis, tout en contribuant à l’écosystème (les PR c’est encore mieux quand c’est possible).
Je t’invite d’ailleurs à faire de même, à contribuer, ou à me faire des retours sur gitlab !
Qu’est-ce qu’un rôle Ansible WordPress ?
Un rôle Ansible est un ensemble de tâches prêtes à l’emploi pour automatiser une installation ou une configuration. Ici, il permet de :
- déployer WordPress,
- configurer Nginx, Apache ou Caddy,
- gérer les bases de données (création, charset, users),
- appliquer les bonnes pratiques sécurité,
- installer SSL automatiquement,
- importer un dump SQL lors de la migration d’un site,
- automatiser toutes les actions récurrentes liées à WordPress.
Les avantages d’un déploiement WordPress automatisé
- Gain de temps colossal — Un site prêt en moins de 5 minutes.
- Standardisation — Tu obtiens la même config sur tous tes serveurs, idéal pour prod/staging/dev.
- Sécurité by default — Permissions, HTTPS, headers de sécurité, restriction uploads PHP, tout est intégré.
- Migration facilitée — En une seule commande, tu restaures un site complet avec sa base de données.
🚀 Mise en route express
Installation du rôle depuis Ansible Galaxy
ansible-galaxy role install babidi34.wordpress
Exemple de playbook minimal
- hosts: wordpress_servers
become: yes
vars:
wp_version: "6.8.1"
wp_sitename: "mysite.fr"
wp_admin_user: "boss"
wp_admin_password: "strong_password"
wp_admin_email: "contact@mysite.fr"
roles:
- role: babidi34.wordpress
Tu lances ensuite :
ansible-playbook -i inventory deploy-wordpress.yml
Résultat : un WordPress sécurisé, fonctionnel, prêt à l’emploi en quelques minutes
Fonctionnalités principales
Fonction | Détails |
---|---|
Déploiement complet | Télécharge, installe et configure WordPress, la base de données, le serveur web, les permissions |
Webservers multiples | Support Nginx (par défaut), Apache, ou Caddy |
SSL/HTTPS | Gère le HTTPS auto |
Import SQL/dump | Option pour importer une base MySQL existante |
Charset/collation | utf8mb4 par défaut, personnalisable via variables |
Sécurité avancée | Permissions www-data, headers de sécurité, restriction upload PHP |
WP-CLI intégré | Création/mise à jour de l’admin, search/replace URLs, gestion plugins et thèmes |
Pourquoi choisir ce rôle plutôt qu’un autre ?
Il existe plusieurs rôles WordPress sur Ansible Galaxy mais j’ai conçu ce fork pour aller plus loin :
- Multi webservers (Nginx, Apache, Caddy)
- SSL/HTTPS natif
- Import SQL natif (migration facile)
- Sécurité par défaut
- Support de tous les scénarios modernes (VM, cloud, CI/CD…)
Ce rôle est pensé pour répondre à des besoins réels en entreprise ou en prestation freelance.
Chaque amélioration vient d’un retour terrain, d’un vrai besoin de mes clients.
Customisation avancée
L’un des gros avantages de ce rôle, c’est que tout est configurable très simplement via les variables du playbook ou de l’inventaire.
Tu peux ainsi adapter le déploiement à n’importe quel contexte client ou infrastructure, sans toucher au code du rôle.
Voici les principales variables (issues du defaults/main.yml
) que tu peux surcharger :
wp_version: "6.8.3"
wp_sources: "http://wordpress.org/wordpress-{{ wp_version }}.tar.gz"
wp_remote_src: true
wp_chdir_cp_sources: "{{ wp_install_dir }}/wordpress/"
wp_install_dir: "/var/www/html"
wp_db_name: "my_database"
wp_db_user: "my_database_user"
wp_db_password: "my_password"
wp_db_host: "localhost"
wp_db_charset: "utf8mb4"
wp_db_collate: "utf8mb4_unicode_ci"
wp_db_import_file: "" # Pour l'import automatique d'un dump SQL si besoin
wp_table_prefix: "wp_"
wp_debug: false
wp_admin_email: "admin@example.com"
wp_webserver: nginx # Peut aussi être "apache" ou "caddy"
wp_sitename: "mysite"
wp_url: "https://{{ wp_sitename }}"
wp_auto_setup: true
wp_site_title: "Your Site Title"
wp_admin_user: "your_username"
wp_admin_password: "your_password"
wp_nginx_port: 443
wp_nginx_ssl_enabled: true
wp_nginx_ssl_certificate: "/etc/ssl/certs/ssl-cert-snakeoil.pem"
wp_nginx_ssl_certificate_key: "/etc/ssl/private/ssl-cert-snakeoil.key"
wp_nginx_default_server: false
wp_nginx_ipv6: true
wp_nginx_client_max_body_size: "64M"
wp_nginx_force_https: true
Astuce : tu peux bien sûr surcharger seulement les variables qui t’intéressent dans ton playbook.
Toutes les autres prendront leur valeur par défaut.
Grâce à cette flexibilité, tu peux adapter ton déploiement WordPress à chaque projet, gérer plusieurs environnements, importer une base existante, ou customiser la sécurité, les ports, le SSL, etc…
Lien vers le rôle
Voici le lien ansible wordpress role
Je mets mon expertise à disposition pour accompagner les TPE et PME dans la gestion de leur infrastructure.