2

Ich führe ein Projekt auf OpenStack-Cluster von CentOS6.2-Maschinen. Das Projekt besteht aus ungefähr 10 Git-Repos. Ein Repo für einen Service. Auf einigen Rollen werden Dienste auf 20 verschiedenen Knoten ausgeführt. Also können wir eine Art von Zuordnung zwischen Services und Rollen vornehmen. Änderungen durch den Cluster zu liefern ist ein Schmerz in den Arsch, wenn Sie es manuell tun. Momentan verwenden wir git pull kombiniert mit einigen Konfigurationsänderungen an jedem Knoten. Da ein menschlicher Faktor beteiligt ist, möchte ich den Cluster wegen eines manuellen Fehlers nicht offline schalten.Update-Projekt läuft auf dem Cluster

Ich bin auf der Suche nach einer Lösung, um Änderungen an den Cluster mit der Möglichkeit zu liefern, etwas nach der Aktualisierung der Quellen zu konfigurieren (run db migration oder configure files update). Irgendwelche guten Lösungen dazu?

UPDATE: Projekte unten scheinen zu passen. Irgendeine praktische Erfahrung mit diesen?

Antwort

0

wie Scheint an der Waage dem Sie arbeiten, Sie könnten in der Lage sein, gute Verwendung von etwas zu machen, wie chef oder puppet.

+0

Sie eignen sich für die Bereitstellung, wenn Sie eine Erstbereitstellung in diesem Umfang durchführen. Ich bin mir nicht sicher, ob sie als geeigneter Mechanismus für das Projekt-Update angesehen werden können. –

1

Wir verwenden Springloops, um unsere Bereitstellungen zu verwalten. Es ermöglicht uns, verschiedene Server für jeden Zweig jedes Repositorys zu konfigurieren. Sie drücken einfach auf das zentrale Repository und verwalten die Bereitstellung von dort aus. Die Bereitstellung kann automatisiert oder manuell erfolgen.

Es gibt einige Rückrufe unterstützen für die Ausführung Brauch ist, so könnten Sie eine URL Endpunkt irgendwo in Ihrem Cluster (kann auf einer Pro-Projektbasis sein) eingerichtet, die Meldungen akzeptiert, die gemacht wurden schiebt die Ihre benutzerdefinierte Skripts auslösen können .

Dies funktioniert gut, weil es die Verantwortung der Quellcodeverwaltungsverwaltung von den Servern übernimmt, wenn eine neue Bereitstellung auf einem neuen Server erforderlich ist, ist es sehr einfach, einen neuen Server in Springloops hinzuzufügen und zu verschieben, anstatt es zu müssen Klonen Sie ein Git-Repository auf jedem neuen Server und konfigurieren Sie einen Cron- oder einen Trigger-Task, um den Repo zu aktualisieren.

Es gibt zahlreiche andere mögliche Kombinationen von Befehlszeilentools und verwalteten Diensten von Drittanbietern, aber wir haben einige ausprobiert und Springloops ist mehr als akzeptabel für die Verwaltung von Bereitstellungen der Dutzende von Projekten, an denen wir gerade arbeiten.

Es lohnt sich, nachzusehen.

+0

springloops sieht ein bisschen anders aus: mit timesheets, issuetracker und else. Die einzige Funktion, die hilfreich sein kann, ist das Webhook-Management. –