Neben unserer internen IT-Infrastruktur verfügen wir über rund 500 Linux-Computer, auf denen unsere Dienste für die Online-Welt gehostet werden. Sie sind in einer Reihe von Clustern wie Datenbank An, Produkt An, NFS, Backoffice usw. zusammengefasst. Darüber hinaus werden sie von einem externen Anbieter gemäß unseren Spezifikationen und Anforderungen verwaltet.
Wir haben jedoch große Probleme bei der (Web-) Softwareentwicklung, dem Roll-out und der Bereitstellung - insbesondere, weil die Entwicklungs- und Staging-Umgebungen fast nichts mit den Live-Systemen gemeinsam haben (ich erspare die bösen Details.) .
Daher habe ich versucht, virtuelle Maschinen zu erstellen, die verschiedenen Live-Systeme so genau wie möglich zu kopieren und sie darauf vorzubereiten, z. B. eine Verbindung zu den Entwicklungsdatenbanken anstelle der "realen" für Entwickler transparent herzustellen (sie sind es nicht root
). Das funktioniert ziemlich gut, aber ...
Ich habe mich gefragt, wie man diese Systeme remote und in großen Mengen verwalten kann . Gibt es eine Softwarefamilie, die mir nicht bekannt ist? Oder zumindest einige Techniken oder Prinzipien, mit denen man vertraut sein sollte?
Wir würden jedem Entwickler eine Reihe von Bildern zur Verfügung stellen, die lokal ausgeführt werden sollen (VirtualBox). Die QS-Abteilung. würde virtuelle Cluster (XEN oder Hyper-V) erhalten. Wenn ich ein zusätzliches Servermodul bereitstellen, eine neue Datenbankverbindung umleiten oder einfach alles aktualisieren möchte, was vom Paketmanager bereitgestellt wird ... wie könnte ich das möglicherweise tun, ohne gezwungen zu sein, mich bei jedem System und / oder anzumelden Bitten Sie meine Kollegen, ein Fixture-Skript herunterzuladen und auszuführen?
Ich glaube, es gibt viele Lösungen. Irgendwie bin ich zu dumm, um die richtigen Schlüsselwörter in die Suchmaschinen einzugeben ... Oder ist dieses Problem nicht so trivial, wie es sich anhört?
Für die Aufzeichnung:
- Auf fast allen Systemen wird Debian GNU / Linux 6.x "Squeeze" ausgeführt.
- Kein Entwickler ist gezwungen, ein bestimmtes Betriebssystem an seiner Workstation zu verwenden
- Das Budget ist natürlich begrenzt, aber nicht zu klein, um proprietäre Software zu kaufen
- Eine Lösung, an der unser oben genannter Anbieter beteiligt wäre, wird bevorzugt
quelle
cucumber-puppet
. Natürlich können Sie Ihr eigenes Framework entwickeln / erweitern, indem Sie vorhandene Komponenten wiederverwenden, aber es hat sich so angehört, als ob OP derzeit nichts vorhanden ist. Wenn Sie von vorne anfangen, ist es meiner Meinung nach am besten, ein vorhandenes Framework zu verwenden.Ulrich gab bereits die Antwort bezüglich Softwarebereitstellung und automatisierter Serverkonfiguration.
Die Prinzipien dahinter sind
Sie haben nach einem praktischen Tool zum Verwalten von Servern gefragt - mein persönlicher Favorit ist cluster-ssh (
cssh
). Geben Sie einmal ein und nehmen Sie gleichzeitig Änderungen auf vielen Servern vor.Wenn Sie ein Problem entdecken und eine Lösung dafür finden, mit der das Problem behoben wird:
Wenn Sie mit einer Vielzahl von Servern konfrontiert sind, um dies zu beheben, muss dieser Prozess gut dokumentiert werden. Am Ende sollte ein anderes Team prüfen, ob der Fix vollständig angewendet wurde.
Zu diesem Zweck setzen wir Mantis (Open Source, PHP) ein.
quelle
Ich verwalte ungefähr 30 Produkte und einige hundert Server in mehreren Ländern. Ich bin der Softwarekonfigurationsmanager, daher habe ich keinen Root-Zugriff (beabsichtigt), berühre weder die Datenbanken noch deren Server (wiederum beabsichtigt) und muss aus Gründen der Unternehmenssicherheit viele Reifen springen. Aber ich verwalte die Konfigurationen in Test, Staging und Produktion, einschließlich Datenbankverknüpfungen und Änderungen. Ich habe eine Reihe von Skripten , die unter Verwendung von Kombinationen von Servern ausgehen
ssh
,python
und Skripte Shell.Die wichtigsten Dinge, über die man nachdenken sollte, sind:
ssh
ausreichend und von einem zentralen sicheren Ort?ssh
, um es remote auszuführen? Können Sie es mitexpect
oder nur mit einem Befehlszeilenaufruf skripten?VirtualBox bietet viele Befehlszeilentools, die Sie über Just
ssh
oder Systeme wiepuppet
Ulrichs erwähnen können.quelle