Capistrano
| Fiche express | |
|---|---|
| Type | Déploiement applicatif à distance par SSH |
| Écrit en | Ruby (DSL de recettes) |
| Origine | Écosystème Ruby on Rails, généralisable à tout stack |
| Voir aussi | Rundeck · Ansible |
Capistrano est un outil open source de déploiement et d'exécution de tâches à distance, écrit en Ruby. Il exécute des scripts (« recettes ») sur un ensemble de serveurs via SSH, le plus souvent pour automatiser la mise à jour d'une application web : récupération du code, gestion des releases, migrations de base de données, redémarrage des services applicatifs.
Note : la page source ne comportait qu'une présentation sommaire ; cette fiche a été enrichie à partir de connaissances générales sur l'outil.
Principe
- Les serveurs cibles sont regroupés par « rôles » (
web,app,
db...), chacun pouvant recevoir un sous-ensemble des tâches du déploiement.
- Chaque déploiement crée une release horodatée dans un répertoire dédié ; un lien
symbolique current pointe vers la release active, ce qui permet un
rollback quasi instantané en cas de problème (simple changement du lien).
- Des hooks
before/afterpermettent d'insérer des étapes personnalisées
autour du cycle de déploiement standard (migrations, purge de cache, notification...).
Exemple minimal
# config/deploy.rb
set :application, "monapp"
set :repo_url, "git@exemple.com:mon-organisation/monapp.git"
set :deploy_to, "/var/www/monapp"
server "app01.exemple.com", user: "deploy", roles: %w{app web}
$ cap production deploy
Positionnement
Capistrano se concentre sur le déploiement applicatif (le code et son cycle de release), alors que des outils comme Ansible ou Rundeck couvrent un périmètre plus large (configuration système, orchestration de tâches ad hoc, inventaire). Il reste une option légère quand le besoin se limite à pousser une application par SSH sans vouloir gérer toute la configuration de l'hôte.