Rundeck
| Fiche express | |
|---|---|
| Type | Orchestration et exécution de jobs (runbook automation) |
| Écrit en | Java |
| Interface | Web, CLI, API |
| Voir aussi | Integration continue · Ansible · Capistrano |
Rundeck est une plateforme d'orchestration qui permet de définir, planifier et exécuter des tâches opérationnelles (jobs) sur un parc de serveurs, avec traçabilité complète (qui a lancé quoi, quand, avec quel résultat) et délégation de droits fine. Il est souvent utilisé pour transformer des procédures manuelles (« runbooks ») en jobs self-service exécutables par une équipe support sans accès shell direct aux serveurs.
Installation (RHEL/CentOS)
yum install java-1.8.0-openjdk
rpm -Uvh http://repo.rundeck.org/latest.rpm
yum install rundeck
service rundeckd start
(la version Java 1.7 mentionnée dans une version antérieure de cette page est obsolète et non supportée par les versions récentes de Rundeck ; utiliser au minimum Java 8, à ajuster selon la version de Rundeck ciblée.)
Installation derrière un reverse proxy
Rundeck embarque son propre serveur (Jetty) ; en production, il est courant de le placer derrière un reverse proxy Apache ou Nginx pour la terminaison TLS et l'authentification. Se référer à la documentation officielle du projet pour la configuration à jour du proxy, les options ayant évolué depuis les premières versions.
Changer le mot de passe par défaut
vi /etc/rundeck/realm.properties
admin: motdepasse-a-changer, user, admin
Le fichier realm.properties par défaut ne convient qu'aux tests : en production,
brancher Rundeck sur un annuaire LDAP/Active Directory ou un autre realm
d'authentification.
Activer le HTTPS
Génération d'un keystore auto-signé (à remplacer par un certificat émis par une autorité reconnue en production) :
keytool -keystore /etc/rundeck/ssl/keystore -alias rundeck -genkey -keyalg RSA -keypass motdepasse -storepass motdepasse
cp /etc/rundeck/ssl/keystore /etc/rundeck/ssl/truststore
# /etc/rundeck/ssl/ssl.properties
keystore=/etc/rundeck/ssl/keystore
keystore.password=motdepasse
key.password=motdepasse
truststore=/etc/rundeck/ssl/truststore
truststore.password=motdepasse
Puis déclarer l'URL et le port dans la configuration du framework et de l'application :
vi /etc/rundeck/framework.properties
# framework.server.url, framework.rundeck.url, framework.server.port
vi /etc/rundeck/rundeck-config.properties
# grails.serverURL=https://mon-hote.exemple.com:4443
Exécution via Docker
Une image officielle est publiée sur le Docker Hub (rundeck/rundeck), pratique pour une prise en main rapide sans installation par paquet :
docker run -d --name rundeck -p 4440:4440 rundeck/rundeck
Des images communautaires tierces (non officielles) circulent également ; elles sont rarement maintenues dans la durée, mieux vaut donc s'en tenir à l'image officielle ci-dessus. Pour un usage durable, prévoir un déploiement via Docker compose incluant une base de données externe (l'image embarque par défaut une base H2 non adaptée à la production).
Positionnement
Rundeck se distingue de Ansible ou Capistrano par son orientation « self-service » : il expose un catalogue de jobs paramétrables via une interface web ou une API, avec une gestion fine des permissions (qui peut lancer quel job sur quel groupe de nœuds), plutôt que d'être piloté uniquement en ligne de commande. Il est fréquemment utilisé pour orchestrer des jobs d'intégration/déploiement continu ou des tâches de maintenance récurrentes.
Voir aussi
- Integration continue — pipelines pouvant déclencher ou être déclenchés par des jobs Rundeck
- Ansible — automatisation de configuration, souvent invoquée en tant que job Rundeck
- Capistrano — déploiement applicatif, cas d'usage voisin sur un périmètre plus restreint