--- title: Rundeck created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, automation, job-scheduler, runbook, ci-cd, java, groovy] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Automation, https://github.com/rundeck/rundeck] --- # 📅 Rundeck > **L'ordonnanceur de jobs et runbook automation** — planifiez, exĂ©cutez et tracez **n'importe quel script** sur des centaines de nƓuds depuis une interface web. Le **pont idĂ©al entre SysAdmins, SREs et Ă©quipes support** non-techniques. ## 📋 Informations GĂ©nĂ©rales | Champ | Valeur | | :--- | :--- | | **Site web** | [rundeck.org](https://www.rundeck.org/) | | **GitHub** | [rundeck/rundeck](https://github.com/rundeck/rundeck) | | **License** | Apache-2.0 | | **Langage** | Java (backend) + Groovy (Jobs) | | **Étoiles GitHub** | 972 ⭐ (cette stat) / 5,5k+ en rĂ©alitĂ© | | **DerniĂšre MAJ** | 2026-06-05 | | **CatĂ©gorie** | [[cat-automation\|Automation]] | ## 📝 Description **Rundeck** est l'outil de rĂ©fĂ©rence pour l'**exĂ©cution sĂ©curisĂ©e de scripts sur des flottes de serveurs hĂ©tĂ©rogĂšnes**, avec une **UI web**, des **logs centralisĂ©s**, du **RBAC**, et un **scheduler cron**. LĂ  oĂč [[app-ansible|Ansible]] est opinionated (YAML, SSH, modules), Rundeck est **agnostique** : un Job Rundeck peut lancer un script bash, un playbook Ansible, une commande PowerShell, un kubectl, une requĂȘte SQL, ou n'importe quel exĂ©cutable — sur n'importe quel nƓud, Ă  n'importe quel moment. L'idĂ©e centrale est le **runbook** : un **livret de procĂ©dures** versionnĂ©, documentĂ©, traçable, exĂ©cutable en un clic. Au lieu d'avoir un wiki Notion avec « en cas de prod down, faire X, Y, Z », le runbook Rundeck **exĂ©cute rĂ©ellement** X, Y, Z et garde la trace de qui a cliquĂ© quand. C'est le rĂȘve de tout SRE et de toute Ă©quipe support de niveau 1. **FonctionnalitĂ©s principales** : - ✅ **Jobs** : scripts paramĂ©trĂ©s, versionnĂ©s (Git), avec description Markdown - ✅ **Scheduler cron** : exĂ©cution planifiĂ©e (timezone-aware) - ✅ **ExĂ©cution multi-nƓuds** : lancer sur 1, 10 ou 1000 nƓuds en parallĂšle - ✅ **Plugins** : SSH, WinRM, HTTP, Kubernetes, Ansible, AWS, GCP, Azure - ✅ **RBAC avancĂ©** : ACL par projet, par groupe, par job (qui peut voir/exĂ©cuter quoi) - ✅ **Logs centralisĂ©s** : sortie capturĂ©e, rejouable, tĂ©lĂ©chargeable, exportable en JSON - ✅ **Webhooks** : dĂ©clencher un job via HTTP (idĂ©al pour intĂ©gration n8n/GitLab CI) - ✅ **Workflows** : enchaĂźner plusieurs jobs avec conditions (success, failure) - ✅ **Variables d'entrĂ©e** : le job demande des paramĂštres Ă  l'utilisateur - ✅ **Notifications** : email, Slack, webhook, PagerDuty - ✅ **Self-service portal** : interface simplifiĂ©e pour les non-techs - ✅ **API REST** complĂšte **Vs Ansible** : Rundeck **utilise souvent Ansible** sous le capot (il y a un plugin officiel), mais il ajoute la couche UI, scheduler, audit, RBAC. Pour un homelab, Rundeck est utile dĂšs qu'on a **3+ serveurs** et des opĂ©rations rĂ©currentes (backups, nettoyage, dĂ©ploiements). **Origine** : créé par SimplifyOps en 2010, maintenant maintenu par la communautĂ©, historiquement utilisĂ© par Disney, Salesforce, Comcast. ## 🚀 Installation ### Option 1 : Docker Compose (recommandĂ©) ```yaml # docker-compose.yml services: rundeck: image: rundeck/rundeck:latest container_name: rundeck restart: unless-stopped ports: - "4440:4440" environment: RUNDECK_GRAILS_URL: "https://rundeck.mondomaine.fr" RUNDECK_SERVER_FORWARDED: "true" RUNDECK_DATABASE_URL: jdbc:mysql://rundeck-db/rundeck?autoReconnect=true RUNDECK_DATABASE_DRIVER: org.mariadb.jdbc.Driver RUNDECK_DATABASE_USERNAME: rundeck RUNDECK_DATABASE_PASSWORD: change-me-db RUNDECK_ADMIN_PASSWORD: change-me-admin RUNDECK_LOGLEVEL: INFO volumes: - rundeck-data:/home/rundeck/server/data - rundeck-config:/home/rundeck/etc rundeck-db: image: mariadb:10.11 container_name: rundeck-db restart: unless-stopped environment: MARIADB_ROOT_PASSWORD: change-me-root MARIADB_DATABASE: rundeck MARIADB_USER: rundeck MARIADB_PASSWORD: change-me-db volumes: - rundeck-db:/var/lib/mysql volumes: rundeck-data: rundeck-config: rundeck-db: ``` Premier login : `admin` / `change-me-admin` (penser Ă  le changer). ### Option 2 : Binaire Java (Linux) ```bash wget https://dl.bintray.com/rundeck/rundeck/rundeck-X.X.X.war java -jar rundeck-X.X.X.war # dĂ©marre sur :4440 ``` ### Option 3 : Paquets RPM/DEB Rundeck fournit des dĂ©pĂŽts APT et YUM officiels. Cf. [docs.rundeck.org](https://docs.rundeck.com/docs/administration/install/installing-rundeck.html). ## ⚙ Configuration - **Projet** : unitĂ© logique (ex. "prod-web", "staging-db") - **Key Storage** : stocker les clĂ©s SSH et secrets (chiffrĂ©s en DB) - **Resource Model** : inventaire des nƓuds cibles (statique YAML, dynamique AWS/GCP) - **Jobs** : un Job = un script + un nom + une description + un schedule + des ACLs - **ACLs** (`/etc/rundeck//acls.policy`) : politiques de sĂ©curitĂ© par projet (qui peut voir/exĂ©cuter quoi) - **Plugins** : `~/.rundeck/libext/` pour les plugins custom (Java JAR) - **Webhooks** : activer les webhooks d'URL pour intĂ©gration CI/CD Exemple de Job simple (dĂ©clenchĂ© Ă  la demande, exĂ©cutĂ© sur tous les nƓuds web) : ```yaml - job: name: "Check disk space" description: "Affiche l'espace disque des serveurs web" nodeFilter: "role:web" sequence: - command: "df -h | grep -v tmpfs" ``` ## 🔗 Alternatives ### Open Source - **Jenkins** — surtout orientĂ© CI/CD, mais peut faire office de scheduler - **AWX** — l'Ă©quivalent Red Hat pour Ansible - **StackStorm** — event-driven automation (plus complexe) - **Airflow** — orientĂ© data pipelines (Python) - **n8n / Node-RED** — workflow automation no-code - **Crontab + Syslog** — pour les fans de CLI pure - **Ansible Semaphore** — [[app-semaphore-ui|UI web pour Ansible]] (plus simple, plus Ansible-centric) - **Cronicle** — alternative JS plus lĂ©gĂšre ### PropriĂ©taires (ce que Rundeck remplace) - **Rundeck Enterprise / PagerDuty Runbook Automation** — sur devis, ajoute SSO/SAML - **Ansible Tower** — sur le mĂȘme crĂ©neau mais Ansible-only - **BMC Control-M** — orchestrateur enterprise (centaines de k€) - **Tidal Enterprise Scheduler** — mainframe/enterprise - **CloudBees Flow (ex Electric Cloud)** — CI/CD enterprise - **JFrog Pipelines** — orientĂ© DevOps/CD ## 🔒 SĂ©curitĂ© - ⚠ **Changer `admin` password + `RUNDECK_ADMIN_PASSWORD`** avant l'exposition - **ACLs fines** : toujours configurer les politiques d'accĂšs (`acls.policy`) avant d'inviter l'Ă©quipe - **Key Storage** : chiffrĂ© au repos, mais la **master key** doit ĂȘtre sauvegardĂ©e hors serveur - **TLS obligatoire** : mettre Rundeck derriĂšre Traefik/Caddy en HTTPS (le web admin expose tous vos scripts) - **RBAC par projet** : un SRE ne doit pas pouvoir exĂ©cuter un job DBA - **Audit log** : exporter vers un SIEM (Loki, Graylog) - **SĂ©curitĂ© SSH** : prĂ©fĂ©rer ed25519 aux clĂ©s RSA 1024 - **Rotation des credentials** : configurer l'API pour rotater automatiquement les secrets stockĂ©s ## 📚 Ressources - [Site officiel](https://www.rundeck.org/) - [DĂ©pĂŽt GitHub](https://github.com/rundeck/rundeck) - [Documentation](https://docs.rundeck.com/) - [Tutoriel Runbook Automation](https://docs.rundeck.com/docs/tutorials/beginners/) - [Rundeck University](https://university.rundeck.com/) - [Plugins communautaires](https://github.com/rundeck-plugins) ## 🔗 Pages LiĂ©es - [[cat-automation]] — CatĂ©gorie Automation - [[app-ansible]] — Souvent utilisĂ© comme runner par Rundeck - [[app-semaphore-ui]] — Alternative plus simple et Ansible-only - [[cat-deployment]] — CatĂ©gorie DĂ©ploiement - [[recettes-docker-compose]] — Templates Docker - [[securisation-home-lab]] — SĂ©curitĂ©