RunDeck 1.2 : automatisation de l’administration de serveurs

Posté par . Modéré par Xavier Teyssier. Licence CC by-sa
17
29
mar.
2011
Technologie

RunDeck est un outil d’automatisation de l’administration de serveurs : en deux mots, il vous permet de définir des tâches qui seront exécutées sur plusieurs machines distantes via SSH. Écrit en Java, il dispose de deux interfaces : une CLI (Command Line Interface) et une interface Web (via une application grails) qui dispose d’une API REST. Et, bien sûr, RunDeck est libre (licence Apache v2).

Quelques fonctionnalités :

  • CLI et interface Web ;
  • les tâches sont composées d’une ou plusieurs étapes : des commandes distantes, des scripts, ou des références à d’autres tâches ;
  • les tâches peuvent avoir des options (qui peuvent venir de systèmes extérieurs), avec validation au moment de l’exécution ;
  • les tâches sont organisées par groupes et par projets ;
  • les tâches peuvent être programmées pour s’exécuter à intervalles réguliers, ou à une heure précise (syntaxe cron) ;
  • il y a un système de notification par e-mail en cas de succès et / ou d’échec d’une tâche ;
  • la connexion aux serveurs se fait par SSH avec une clé (la liste des serveurs peut être récupérée depuis un système extérieur) ;
  • pas besoin d’installer d’agent sur les serveurs (un serveur SSH suffit) ;
  • authentification (interne ou LDAP), et support d’ACL pour restreindre les actions des utilisateurs ;
  • historique complet des tâches executées (qui, quoi, quand)

Les nouveautés de la version 1.2, sortie le 16 mars dernier :

  • l’API REST, qui permet de demander l’exécution de tâches via d’autres outils ;
  • support du format YAML, en plus du XML, pour définir les tâches, les ACL et les ressources ;
  • le support des options multiples.

Historique

Même si RunDeck est un projet « jeune » (quelques mois), il vient avec un existant : ControlTier. En effet, les développeurs de ControlTier ont décidé de faire un « fork amical », afin de repartir sur une base plus saine : simplification de la construction du projet, connexion directe en SSH au lieu d’utiliser des agents, workflow simplifié, etc. RunDeck conserve une partie du code (notamment l’interface graphique) et des concepts de ControlTier, et si le projet fonctionne bien, il est envisagé de récrire ControlTier en se basant sur RunDeck pour la partie centrale. Bref, on peut voir RunDeck comme une version simplifiée de ControlTier.

Utilisation

RunDeck peut être utilisé pour automatiser des opérations habituelles, mais également pour fournir l’accès à d’autres équipes à des tâches habituellement réservées aux administrateurs systèmes. Une utilisation assez courante est le déploiement d’applications dans les différents environnements (développement, test et production).
Grâce à son interface Web, il est facile à prendre en main, et, avec la gestion de l’historique, on peut facilement savoir qui a fait quoi, et quand.

Enfin, à mon sens le gros point fort de RunDeck, ce sont ses possibilités d’extension : il existe déjà des greffons pour l’intégrer avec bon nombre d’outils, comme Puppet, Chef, Jenkins (ex-Hudson), Nexus, etc..

Installation

Le meilleur pour la fin : l’installation. Il existe un paquet RPM, et un paquet DEB est en cours de préparation. Mais il est extrêmement simple à installer :

java -jar rundeck-launcher-1.2.jar

Puis, ouvrez votre navigateur sur http://localhost:4440 (nom utilisateur / mot de passe par défaut : admin / admin). N’hésitez pas à prendre quelques minutes pour tester, vous ne le regretterez pas !

  • # Jenkins (ex-Hudson)

    Posté par . Évalué à 2.

    :) Un peu rapide comme enterrement... Il bouge encore et on ne sait pas quel sera le grand gagnant du fork.

    • [^] # Re: Jenkins (ex-Hudson)

      Posté par . Évalué à 4.

      La quasi-totalité des développeurs a rejoint Jenkins, c'est très vite vu ...

      • [^] # Re: Jenkins (ex-Hudson)

        Posté par (page perso) . Évalué à 5.

        En fait, ce n'est pas un fork, ou en tout cas, ce n'est pas présenté comme tel. C'est un changement de nom, car la marque Hudson est détenue par Oracle.

        Mais ce qui est amusant, c'est que Oracle a ensuite décidé de continuer à développer Hudson. On peut donc considérer que Hudson est devenu Jenkins, et que Hudson est un fork de Jenkins !

        DLFP >> PCInpact > Numerama >> LinuxFr.org

      • [^] # Re: Jenkins (ex-Hudson)

        Posté par . Évalué à 3.

        Oh! Je le sais ; j'ai développé un plugin pour hudson et le jour où j'ai créé un compte sur GitHub, je me suis retrouvé uatomatiquement (et je sais pas comment, surtout que je suis plus actif sur le projet) inscrit au projet jenkins (et une personne que je connais et qui est dans le même cas également).

        Y'a plus qu'à espérer que c'est pas le cas de tous les développeurs :)

        • [^] # Re: Jenkins (ex-Hudson)

          Posté par . Évalué à 4.

          Je crois que l'explication de pankkake, explique ce qui s'est passé pour toi (et ton ami).

          Les logiciels sous licence GPL forcent leurs utilisateurs à respecter la GPL (et oui, l'eau, ça mouille).

  • # Spring Batch

    Posté par . Évalué à 1.

    C'est marrant j'ai cru lire une description de Spring Batch :)

    Bon c'est sur Spring Batch ne sert pas pour de l'administration, mais il sert pour du développement. Mais les points en commun sont nombreux. Il ne manque plus que RunDeck soit capable d’exécuter les taches en parallèle et alors la c'est bon, ce sera une copie conforme!

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.