Rundeck est un outil open source de planification de jobs fonctionnant sur un serveur web et possédant une interface intuitive. Fini les tâches répétitives, vous pouvez rejouer vos scripts automatiquement et ce sur plusieurs machines dédiées. Chaque étape individuelle créée peut être intégrée à un flux. L’outil est aussi pilotable via une API web.
Liste des fonctionnalités
- API web REST
- Exécution de commandes distribuées
- Excution via ssh
- Flux de plusieurs étapes
- Lancement manuel ou programmé
- Interface web
- Gestion des accès par roles et intégration LDAP
- Gestion des logs
- Intégration avec d’autres outils
- Outil en lignes de commandes
Rundeck permet de lancer des commandes de manière plus élégante que via un terminal, inutile de les stocker sur un wiki ou dans des fichiers excel, il est possible d’appeler des commandes sur d’autres systèmes tels que Puppet, Chef, Jenkins, que ce soit sur le cloud ou en local, sur des machines virtuelles et d’automatiser des taches qui incombent à ces différents systèmes. Il est possible de déployer ou de maintenir des applications en pilotant des outils de gestion.
Quelques définitions
Pour mieux comprendre le fonctionnement de Rundeck, voici quelques termes utilisés :
Projet
Permet de séparer les domaines d’activités, un serveur peut en contenir plusieurs.
Noeuds
C’est une ressource ou instance qui peut être physique ou virtuelle.
Commande
Un simple texte en ligne de commande exécutée sur un nœud.
Les exécutions
Représente l’activité d’un job qui se déroule ou qui se termine, cette activité est enregistrée pour suivre l’évolution de vos jobs de mainère détaillée (monitoring, barre de status, résumé)
Plugins
Ce sont des fichiers qui contiennent des fournisseurs de services en standard ou qui peuvent être ajoutées, ces services donne à l’outil la capacité d’utiliser des protocoles comme ssh ou scp ou encore d’appeler des URL.
Installation
Rundeck fonctionne sur toutes les plate-formes mais étant un utilisateur d’Ubuntu, je donnerai les instructions propres à ce système. Comme pré-requis, il faut installer la machine virtuelle java au minimum en version 1.7
Les sources sont disponibles ici, si vous souhaitez tester Rundeck, le plus simple étant de télécharger le jar exécutable et de le lancer directement , il se trouve ici
Paramétrage
Il faut ajouter quelques variables d’environnements pour la bonne exécution de l’outil. Le plus simple étant d’ajouter ces variables dans /etc/environnement, j’ai ensuite créé un répertoire rundeck dans mon répertoire home et copié le jar à l’intérieur.
mkdir ~/rundeck echo 'RDECK_BASE=$HOME/rundeck' | sudo tee -a /etc/environment echo 'PATH=$PATH:$RDECK_BASE/tools/bin' | sudo tee -a /etc/environment echo 'MANPATH=$MANPATH:$RDECK_BASE/docs/man' | sudo tee -a /etc/environment
Exécution de rundeck
Lancez la commande suivante :
java -Xms512M -Xmx1024M -XX:MaxPermSize=256M -jar rundeck-launcher-2.2.3.jar
un serveur jetty se lance
connectez vous à l’adresse : http://localhost:4440
Créer un projet
On peut soit le faire via l’interface graphique ou en ligne de commande avec la commande shell rd-project
rd-project -p MonProjet --action create
ou via l’interface
Créer un job
Toutes les étapes en anglais sont décrites ici
Programmer un job
La fonction la plus intéressante de Rundeck, est que celui-ci utilise la librairie Quartz, on peut paramétrer le/les moment(s) où l’exécution se fera (à la manière d’une crontab)
Conclusion
Complet, intuitif, bien pensé et surtout open source, Rundeck a tout pour plaire, il peut rendre de nombreux services et faciliter la vie de nos chers administrateurs, bref un outil à recommander de toute urgence. Je ne manquerai pas de faire un prochain article sur la planification de jobs issus de Talend communautaire, Rundeck peut facilement remplacer la bonne vieille crontab… à suivre…