Welches Werkzeug eignet sich zum Synchronisieren von mehr als 40 Maschinen?

385
jsaak

Ich habe ungefähr 40 Arm-Geräte, die Debian im Internet mit bekannten - dynamischen - IP-Adressen ausführen. Sie haben eine begrenzte Bandbreite (auf 3G-Mobilgeräten mit einem Piad-Datentarif). Ich habe SSH-Zugriff. Manchmal müssen diese Maschinen aktualisiert werden. Es gibt nur 2 Dateien und das Protokollverzeichnis, die nicht identisch sind.

Jetzt verwende ich ein benutzerdefiniertes rsync / install-Skript und eine Schleife auf allen Maschinen.

Meine größte Sorge ist, dass der Workflow ziemlich fehleranfällig ist:

  1. Das Upgrade des Systems erfolgt zuerst auf einem Testgerät. (Installieren / Entfernen von Paketen, Einrichten von Konfigurationsdateien in usw., Aktualisieren des Kernels, Installieren neuer Dienste über /etc/init.d-Skripts.)

  2. Versuchen Sie, die Änderungen im benutzerdefinierten Skript zu reproduzieren (hier liegt das Problem).

  3. stellen Sie die Änderungen in einer Schleife bereit

Hast du irgendwelche Empfehlungen? (Marionette?, Chef?, rsync das gesamte Dateisystem ?, das Dateisystem unter Versionskontrolle verschieben?)

1
Sie stellen eine Off-Topic-Frage (Software-Shopping). Fragen, die Produkt-, Service- oder Lernmaterialempfehlungen suchen, sind nicht thematisch. Siehe [Zum Thema] (https://superuser.com/help/on-topic). Versuchen Sie es mit https://softwarerecs.stackexchange.com/, aber lesen Sie zuerst [Was ist erforderlich, damit eine Frage "genug Informationen enthält"] (https://softwarerecs.meta.stackexchange.com/questions/336/what-is- Erforderlich-für-eine-Frage-enthalten-genug-Informationen). DavidPostill vor 6 Jahren 0

1 Antwort auf die Frage

1
sborsky

Ansible wäre meine Empfehlung.

Es kann alles von Schritt 1 bis SSH ausführen, ohne dass ein Agent auf den Geräten installiert werden muss (Python inkl. JSON-Bibliothek wird empfohlen). Anstelle von Schritt 2 würde ich vorschlagen, Schritt 1 auf jedem Gerät auszuführen.

Puppet eignet sich hervorragend für Umgebungen mit einer großen Anzahl von Geräten. Es kann alles in Schritt 1 mindestens genauso gut wie Ansible ausführen, erfordert jedoch einen erheblichen Aufwand (Puppet Agent und Abhängigkeiten auf jedem Gerät installieren, Puppet Master einrichten, Geräte über HTTP mit Puppet Master verbinden.)

rsynckönnte sich zuerst wie eine einfache Lösung zusammenfügen. Sie werden jedoch wahrscheinlich viel Zeit damit verbringen, Probleme zu lösen, die andere Tools bereits lösen, oder die beim ersten Mal nicht auftreten.