Coordination des tâches entre plusieurs serveurs
-
03-07-2019 - |
Question
Existe-t-il un utilitaire / une bibliothèque facilitant la coordination des tâches entre plusieurs serveurs? Pour moi, je dois exécuter des tâches planifiées, copier un grand nombre de données entre serveurs et relancer des processus (une série d'opérations dépendantes exécutées sur différentes machines d'un cluster).
Je peux utiliser des tâches cron et des scripts batch, même si je ne peux m'empêcher de penser qu'il existe une façon plus robuste et élégante de s'y prendre.
La solution
Capistrano est un outil permettant d'automatiser des tâches sur plusieurs serveurs, il fait exactement ce que vous demandez. Il est écrit en Ruby et utilise SSH pour communiquer avec les autres machines.
Autres conseils
Comme indiqué, Capistrano peut être utilisé pour automatiser des tâches. A l'origine, il était conçu pour déployer les applications Rails de manière cohérente, mais il est devenu un outil très robuste pour l'administrateur système. Il est généralement préférable d'utiliser des commandes ponctuelles ponctuelles et des déploiements d'applications. Si vous avez besoin de plusieurs systèmes gérés avec un outil de configuration cohérent, je suggère Puppet .
Nous utilisons Puppet pour gérer la configuration globale du système pour les serveurs web / db / app basés sur Rails, Django et PHP, et nous utilisons Capistrano pour les déploiements d’applications et les commandes uniques (comme l’exécution de Puppet après un changement de configuration).