Verwalten von Upgrades auf Hunderten von Debian-Servern

20

Was sind Ihrer Meinung nach die besten Methoden, um Dutzende (wenn nicht Hunderte) von Debian-Servern auf dem neuesten Stand zu halten? Denken Sie daran, dass:

  • Es gibt Servergruppen (dh identische Webserver, DB-Server, ...)
  • Es kann verschiedene Debian-Probleme geben (Lenny, Etch)
  • Das Ausführen einer Schleife über alle Server und das Ausführen von apt-get update && upgrade ist nicht akzeptabel (weil es das ist, was ich gerade mache :)). Es sollte besser sein als dies!

Derzeit wird nach Abschluss aller Upgrades ein neues Sicherheitsupdate veröffentlicht, das ich erneut ausführen muss.

Danke im Voraus, serverfault community!

Falken
quelle
1
Haben Sie einen lokalen Server, um die neuesten Pakete zu speichern und als passendes Repository zu verwenden. Dies spart Bandbreite und Zeit. Verwenden Sie Ihr lokales Repository, um Updates an lokale Server zu verteilen. Oh, und benutze aptitude statt apt-get.
Karolis T.
3
Ja für den Spiegel und nein für die Befähigung. Heutzutage kein Vorteil. Es hat nicht einmal Superkräfte.
David Pashley

Antworten:

12

Ich verwende apt-dater , um alle meine Debian-Boxen zu aktualisieren. Scheint den Trick gut genug zu machen. Ich habe nicht versucht, es auf Hunderte von Hosts zu skalieren.

Haakon
quelle
1
Interessantes Produkt, obwohl ich noch nie davon gehört hatte.
Wzzrd
Es ist sehr gut ! Ich würde für diese Antwort werben, wenn apt-dater nicht auf jedem Host ein lokales Paket installieren würde ... und ich verstehe nicht, warum es überhaupt benötigt wird.
Falken
Nach dem Testen ist dieses Tool fantastisch! Aber es funktioniert für Dutzende von Servern, nicht für Hunderte. Beim Umgang mit vielen Maschinen wird alles schuppig und langsam ... schade.
Falken
1
Ich bewerbe diese Antwort, weil ich es endlich geschafft habe, sie zu verwenden, aber andere Lösungen sind auch ganz gut, abhängig von Ihren Vorlieben / Ihrer Umgebung!
Falken
2
Es war der Standard-ssh-Agent auf Ubuntu, der alles falsch gemacht hat. Ich habe es einfach entfernt und das einfache "ssh-add" verwendet. Alle Langsamkeit ist verschwunden!
Falken
3

Wir haben mit Puppet versucht, Sicherheitsupdates für nicht unbedingt benötigte Pakete zu aktualisieren. Wir haben apticron ausgeführt, um eine Liste der Updates für jeden Server per E-Mail zu versenden, und dann täglich ein Skript ausgeführt, das diese Updates in einer Puppet-Manifest-Datei zusammenführt, die das Paket und die Version für jede Distribution enthält. Dies würde dann eine Reihe von Dateien auf den einzelnen Servern aktualisieren und ein Upgrade-Skript starten, wenn ein Paket ein Upgrade benötigt. Das hat einigermaßen gut funktioniert, aber wir haben es nicht so oft getestet, wie ich es gerne hätte. Dieses Schema hat die Einschränkung umgangen, dass Puppet nicht dieselbe Ressource an mehreren Stellen definiert hat.

Ich war auch nicht damit zufrieden, automatische Upgrades von Dingen wie MySQL oder PostgreSQL durchzuführen, bei denen ein zufälliges Update einen Dienst möglicherweise mitten am Tag beenden würde. Hierfür wären noch manuelle Updates erforderlich.

Spacewalk und Debmarshall sehen nach geeigneten Alternativen für unser Puppenspiel aus.

David Pashley
quelle
Kein Kommentar zur Antwort, nur ein verspäteter "Happy 10K Day" -Ruf.
Evan Anderson
1

Anscheinend hat Spacewalk jetzt vorläufige Unterstützung für Debian. Das wäre vielleicht zusammen mit Puppet mein Ausgangspunkt. Ich bin mir ziemlich sicher, dass der Typ, der die Debian-Unterstützung für Spacewalk entwickelt, Sie lieben wird, wenn Sie mit ihm zusammenarbeiten, um die Debian-Unterstützung auf ein höheres Niveau zu heben.

wzzrd
quelle
1

In Bezug auf Pull-basierte Konfigurationssysteme wie Puppet gibt es auch bcfg2 und cfengine. Das eine oder andere könnte gut zu Ihren Bedürfnissen passen. Ich rolle gerade bcfg2 in meinem Labor aus.

Phil Miller
quelle
1

Eine Lösung kann durch func gegeben werden

drAlberT
quelle
Ich würde nicht func machen. Es ist viel zu unreif für die Produktion, obwohl ich zugeben muss, dass es vielversprechend ist.
Wzzrd
func wird von cobbler benutzt, es ist meiner Meinung nach nicht unreif. cobbler wird stark von RH-Spezialisten genutzt und diese Technologien werden in der nächsten RHEL-Version enthalten sein. Es ist vielleicht nicht "formal" produktionsreif, aber es ist ziemlich nah dran, tatsächlich zu sein.
drAlberT
0

Ich bin mir nicht sicher, welche Art von Lösung Sie erwarten. Sie kennen sich wahrscheinlich mit Cron-Jobs aus, aber ich würde Systeme für Blinde nicht aktualisieren, da menschliche Eingriffe erforderlich sind (und aus diesem Grund werden Sie dafür bezahlt, oder?)

Wenn Sie völlig identische Systeme hätten, könnten Sie in Erwägung ziehen, etwas wie rsync zu verwenden, um die Unterschiede herauszufinden. Es könnte jedoch schwierig sein, herauszufinden, welche Dateien nicht mit rsync synchronisiert werden sollen, und ich würde dies nicht tun, während Dienste ausgeführt werden. Zumindest die Aktualisierungsskripts sind so eingerichtet, dass sie den Neustart der Dienste und das Zusammenführen der Unterschiede in der Konfigurationsdatei verwalten.

Wenn Sie erklären, was das Problem mit der Ausführung von apt-get-Befehlen ist, könnten wir vielleicht sehen, was Sie vermeiden möchten.

Wenn das Problem in der Bandbreite und der Zeit zum Herunterladen besteht, sollten Sie möglicherweise eine Box einrichten, die als lokales Debian-Repository fungiert. Es gibt Debian-Anleitungen, wie das geht.

Im Folgenden finden Sie einige Tipps, wie Sie die Anzahl der zu aktualisierenden Elemente minimieren können.

Wenn Sie Debian installieren, installieren Sie Desktop nur, wenn Sie wirklich X auf dieser Konsole verwenden müssen. Auf den meisten Servern muss X nicht installiert sein. Dies kann die Anzahl der Pakete auf dem System erheblich verringern, und Sie müssen nicht so viele Pakete aktualisieren.

Stellen Sie sicher, dass die sources.list nur die Repositorys enthält, die Sie wirklich benötigen. Wenn Sie mit einem Repository experimentiert und dieses vergessen haben, bringen Sie möglicherweise Updates mit, die Sie nicht benötigen oder wollen.

Wenn Sie Probleme haben, blind Updates auf einem Produktionsserver durchzuführen, lesen Sie bitte die Debian-Upgrade-Anleitungen, wenn es ein größeres Update (4.0 auf 5.0) gibt. Diese werden sehr gut durchlaufen, wenn Sie den Upgrade-Anweisungen folgen. Es ist nicht so einfach, apt-get dist-upgrade auszuführen und wegzugehen. Manchmal gibt es in den Anweisungen sogar Hinweise, wann man aptitude ausführen soll, anstatt apt-get - es gibt kleine Unterschiede.

Labradort
quelle
0

Haben Sie jetzt dieses Tool "Tänzershell"? Ich mag es und ich benutze es. Aber ich weiß nicht, ob Sie es für so viele Hosts verwenden können. Vielleicht könntest du es versuchen ...

http://www.netfort.gr.jp/~dancer/software/dsh.html.de

Und er ist im Archiv.

Matthieu
quelle
-1

ClusterSSH. Sie melden sich bei allen Servern an und geben ihnen genau dieselben Befehle, damit Sie auch auf die Dialoge reagieren können. Wenn ein Server eine zusätzliche Frage erhält, klicken Sie einfach auf diese und es wird die einzige sein, die antwortet.

Ich habe es verwendet, um 25 Webserver von Etch auf Lenny zu aktualisieren. Lief wie am Schnürchen.

http://sourceforge.net/projects/clusterssh/

blauwblaatje
quelle
Der SSH-Agent stirbt tatsächlich, wenn Sie versuchen, seltsame Dinge wie das gleichzeitige Herstellen einer Verbindung zu ~ 50 Computern auszuführen. Ansonsten mag ich ClusterSSH, obwohl es eine andere Gruppierungsebene benötigt.
LapTop006,
-1

Cluster ssh ist ein guter Vorschlag.

debmarshal ist noch kein teil von debian - ich bin mir nicht mal sicher, ob es ein paket sein wird - scheint ein völlig anderes system mit einem spezialisierten repository zu sein. Wie der Sprecher sagte, ist dies derzeit benutzerfeindlich, nicht benutzerfreundlich.

Spacewalk scheint ein Klon von Redhat Network zu sein, zumindest in der Weboberfläche. Die Verwendung von Redhat Network zum Aktualisieren von Systemen hat zu schlechten Ergebnissen geführt. Einmal hing es ohne ersichtlichen Grund und verursachte einen Serviceausfall. Unmittelbar danach habe ich ein Yum-Update durchgeführt und es hat sich bestens bewährt. Daher kann ich nur vermuten, dass das Problem von etwas herrührt, das auf der RHN-Seite gesperrt ist. Das andere, was mir an RHN-Updates nicht gefällt, ist, dass Sie nicht wissen, wann das Update stattfinden wird, um nach Problemen Ausschau zu halten.

Labradort
quelle
-1 Unwahr: RHN-Updates werden nur automatisch durchgeführt, wenn Sie sie automatisch durchführen. Abgesehen davon: Als jemand, der RHN täglich nutzt, habe ich es noch nicht gesehen.
Wzzrd
Ich habe nicht gesagt, dass RHN automatisch ist. Wenn Sie jedoch Updates von RHN einrichten, ist nicht abzusehen, wann diese durchgeführt werden. Ihr offensichtliches Glück macht meine reale Erfahrung damit nicht rückgängig und lässt Benutzer ohne Service. Auch das Update kann fehlschlagen. Jeder, der denkt, man könne nur aktualisieren und loslegen, ist nicht vorsichtig oder macht sich keine Sorgen, weil es sich nicht um einen Produktionsserver handelt (Produktion = es gibt Clients, die von den Diensten abhängig sind).
Labradort