Files
wiki/Catalogue-Self-Hosted/apps/app-rundeck.md
T
2026-06-09 18:40:21 +02:00

7.8 KiB


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
GitHub 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

📝 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 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é)

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

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.

⚙️ 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/<projet>/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) :

- 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 Semaphoreapp-semaphore-ui (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

🔗 Pages Liées