Aller au contenu principal

Rundeck — automatisation d'administration

Rundeck est une plateforme d'automatisation opérationnelle : elle expose des scripts/commandes d'administration (redémarrage de service, déploiement, tâche de maintenance) sous forme de jobs exécutables via une interface web, une API, ou une planification (cron intégré), avec contrôle d'accès et traçabilité (qui a lancé quoi, quand).

Installation

# Nécessite un JDK 11+
sudo apt install openjdk-17-jre-headless

# Dépôt officiel
curl -O https://raw.githubusercontent.com/rundeck/packaging/main/scripts/deb-setup.sh
sudo bash deb-setup.sh
sudo apt install rundeck

sudo systemctl enable --now rundeckd

Fichiers de configuration

CheminRôle
/etc/rundeck/rundeck-config.propertiesConfiguration principale (base de données, URL)
/etc/rundeck/realm.propertiesUtilisateurs et mots de passe (authentification simple)
/etc/rundeck/framework.propertiesParamètres du framework, répertoire des projets
/var/rundeck/projects/Définitions des projets et jobs

Commandes utiles

systemctl status rundeckd
journalctl -u rundeckd -f

# CLI
rd jobs list --project <projet>
rd run --job <job-id>

Exemple de configuration

# /etc/rundeck/rundeck-config.properties
grails.serverURL=https://rundeck.exemple.fr
dataSource.url = jdbc:postgresql://localhost/rundeck

Un job simple s'exécute via SSH sur les nœuds cibles définis dans l'inventaire du projet (resources.xml ou plugin de résolution dynamique type Ansible inventory).

Sécurisation

  • Remplacer l'authentification realm.properties (fichier plat) par LDAP/Active Directory en production.
  • Restreindre les ACL (/etc/rundeck/*.aclpolicy) par projet et par job : Rundeck peut exécuter n'importe quelle commande shell sur des nœuds distants, un accès trop large équivaut à un accès root distribué.
  • Stocker les identifiants SSH/clés via le Key Storage intégré (chiffré), jamais en clair dans un job.
  • Placer l'interface derrière TLS et un reverse proxy.

Logs & dépannage

tail -f /var/log/rundeck/service.log /var/log/rundeck/rundeck.log

Voir aussi

  • ansible-pull — une autre approche d'automatisation, en mode agent plutôt que centralisé