(Ich entschuldige mich im Voraus für die Dummheit in dieser Frage. Ich bin normalerweise ein Programmierer, kein Systemadministrator, aber ich habe es mir zur Aufgabe gemacht, einige Dinge zu automatisieren und einige andere Dinge zu bereinigen, die automatisiert sind, aber nicht auf die schönste Weise . :-)
Ich habe mich in verschiedenen Tools zur Automatisierung der Softwarebereitstellung auf einer Reihe von Servern wie cfengine, Puppet und Chef umgesehen. Bisher sieht Puppet am ansprechendsten aus, aber ich habe mich noch zu nichts verpflichtet.
Diese Tools sehen alle so aus, als könnten sie eine Reihe von Servern mit vorgefertigter Software auf dem neuesten Stand halten .
Was ich nicht verstehe, ist: Wie verwendet man ein Tool (wie Puppet), um Bereitstellungen unserer eigenen internen Software zu verwalten? Ich glaube , ich bin ratlos , weil ich habe tausend Tutorials gesehen zeigen , wie Apache zu halten ensure => latest
(das ist ziemlich cool), aber nichts , was ganz entspricht meinen Anwendungsfall heute, was etwas mehr wie ist:
- wenn ein Mensch den Knopf drückt,
- Ziehen Sie Zweig A aus dem Versionskontroll-Repository B.
- Führen Sie den Befehl C aus, um ihn zu kompilieren
- Kopieren Sie die Binärdateien D auf die Server E1 bis E10
- Führen Sie auf jedem Server den Befehl F aus, damit alle Änderungen wirksam werden
Puppet klingt großartig, und ich sehe den Vorteil einer deklarativen, idempotenten Konfiguration gegenüber einigen Shell-Skripten voll und ganz, aber ich habe keine Tutorials für "Sie möchten Ihre Shell-Skripte auf Puppet (oder Chef oder cfengine) aktualisieren. Hier ist also, was Sie tun." sollte tun ". Gibt es so etwas? Ist es für andere Menschen offensichtlich, wie sie die in den Puppet-Dokumenten bereitgestellten Dinge übernehmen und das gewünschte Verhalten replizieren können? Verstehe ich es einfach nicht?
Bisher klingt es für mich so, als würde der Mensch (Nr. 1) die Software (Nr. 2 und Nr. 3) außerhalb von Puppet manuell verpacken und die Puppet-Konfiguration manuell aktualisieren, wodurch Puppet veranlasst würde, die Server zu aktualisieren. .. könnte sein? (Ich bin hier etwas verwirrt, wie Sie sicher sehen können.)
Vielen Dank!