Rundeck

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
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