Le paysage pourrait vous intéresser. Il s'agit de l'outil de gestion «officiel» pour la gestion de grands déploiements Ubuntu, et Canonical est probablement très désireux d'obtenir vos dollars pour son utilisation.
RÉÉDITER:
Tout d'abord, un avertissement; Je n'ai pas utilisé de mise en miroir pour Debian ou Ubuntu, donc je ne connais pas le logiciel.
Deuxièmement, il semble qu'apt-mirror serait une solution «trop lourde», mes excuses. L'idée initiale était que vous auriez une machine de test distincte (ou un environnement de test, probablement une machine virtuelle?) Sur laquelle déployer la mise à jour. Une fois que vous êtes satisfait des performances de la mise à jour, vous tirez / placez le package dans votre miroir "deploy" (il y aurait le miroir local des sources officielles et un miroir secondaire pour les seules mises à jour que vous souhaitez déployer). Les machines distantes exécuteraient alors une mise à jour à une heure prédéfinie et la retireraient de votre miroir de "déploiement" sur chaque machine, un travail cron consistant en:
apt-get update && apt-get upgrade --quiet --assume-yes
Malheureusement, comme j'ai commencé à lire les détails, il semble que cela apt-mirror
va tirer toutes sortes de choses et pas seulement les paquets que vous recherchez. Donc, je vais abandonner cette idée, bien que le concept ait un certain mérite.
Un collègue a découvert et a examiné brièvement apt-dater, qui est un «gestionnaire de mise à jour de packages à distance basé sur un terminal».
Vous utilisez une interface basée sur des curseurs pour gérer les mises à jour sur tous vos hôtes, ou groupes d'hôtes, etc. Prend en charge la journalisation de la session apt complète, y compris les erreurs qui peuvent être rencontrées, etc.
Repose sur ssh et sudo sur les machines gérées.
voir http://www.ibh.de/apt-dater/
Je ne l'ai pas utilisé moi-même, donc je ne peux pas l'approuver, mais cela semble proche de ce que vous recherchez.
la source
Puisque vous utilisez déjà Puppet, la façon la plus simple de le faire (et la meilleure à des fins de contrôle / suivi des modifications) est de spécifier la version souhaitée des packages que vous souhaitez installer dans le manifeste de marionnettes. Vous gardez un œil sur la liste des annonces de sécurité, et lorsque quelque chose que vous utilisez arrive, vous mettez à jour Puppet pour dire "installez cette nouvelle version de ce paquet". En supposant que vous utilisez le contrôle des révisions sur vos manifestes, vous savez alors quand la "stratégie" a été modifiée et les rapports de Puppet vous indiquent exactement quand la modification a été réellement effectuée (afin que vous puissiez facilement corréler cela avec les événements de journal ultérieurs).
la source
Jetez un œil à clusterssh (apt-get install clusterssh):
$ cssh serveur1 serveur2 serveur3 ...
la source
Sans y avoir vraiment réfléchi auparavant, ma première idée serait quelque chose de similaire à ce qu'avery a suggéré, surtout si vous avez déjà un environnement de test.
Fondamentalement, vous configurez vos machines de production pour une mise à niveau automatique à partir de votre propre référentiel local et vous ne mettez à jour ce référentiel qu'après avoir mis à niveau votre environnement de test vers la dernière version de ce que vous exécutez.
Apticron n'évolue pas bien, il est conçu pour être exécuté dans de très petits environnements, mais il a de bons points:
la source
Il y a parfois, j'ai écrit un script Fabric bas niveau / sale pour l'automatisation (fabfile) pour répondre à des exigences similaires, vous pouvez le vérifier sur:
https://gist.github.com/lgaggini/2be3c5bb47b8ce9267bd
la source