Ich bin neu bei Puppet und während ich * nix-Systeme seit vielen Jahren benutze, habe ich nie als Systemadministrator oder in Ops gearbeitet.
Ich schreibe derzeit Puppet-Manifeste für das Hosten einer Reihe von Webanwendungen (PHP / MySQL / MongoDB, Code in Git). Natürlich muss Puppet einige Kenntnisse über die tatsächlichen Anwendungen haben, da ich für jede einen virtuellen Host einrichten werde, aber ich bin mir nicht sicher, ob Puppet Dinge wie die Codebereitstellung und die Datenbankerstellung verwalten soll.
Ist Puppet ein geeignetes Tool für die Anwendungsbereitstellung? Wenn nicht, können Sie ein geeigneteres Tool empfehlen?
deployment
puppet
michaeltwofish
quelle
quelle
Antworten:
Ich würde entweder Capistrano oder Fabric für Bereitstellungen untersuchen.
Mit diesen beiden Tools haben Sie eine bessere Kontrolle darüber, wie die Bereitstellung erfolgt.
quelle
Puppet wird für Bereitstellungen in vielen großen Organisationen verwendet, ist jedoch nicht immer perfekt. Vieles davon hängt von Ihrer Bereitstellungsmethode ab. Stellen Sie auf vielen Computern gleichzeitig bereit? Führen Sie fortlaufende Bereitstellungen durch?
Einige Organisationen verwenden Puppet, indem sie Pakete ihrer Bereitstellungen erstellen und dann die Puppet-Durchsetzungsrichtlinie so einstellen, dass sie die richtige Version dieses Pakets aufweist. Da Puppet das Konzept von Umgebungen enthält, können Sie Umgebungen verwenden, um Bereitstellungen schrittweise durchzuführen (z. B. dev, test, prod).
Andere Organisationen verwenden Puppet, um die Bereitstellung zu orchestrieren, indem sie entweder einen Rsync-, Git-Checkout- oder einige rekursiv-Dateikopien mit Puppet auslösen (obwohl dies ziemlich langsam ist).
Es gibt auch andere ziemlich gute Tools für die Bereitstellung. Ich habe in der Vergangenheit Whiskey Disk (ein einfaches Ruby-Tool) verwendet und es hat mir sehr gut gefallen.
(Haftungsausschluss, ich arbeite bei Puppet Labs)
quelle
Wenn Sie ein Paket aus Ihrer Anwendung erstellen möchten, können Sie sich mit FPM befassen . Code ist auf GitHub .
quelle
Puppet ist meiner Meinung nach nicht das geeignete Tool zum Bereitstellen von Anwendungen.
Ich verwende Jenkins zum Erstellen und Bereitstellen unseres Codes zum Testen und Staging.
Jenkins ist ursprünglich ein Server für die kontinuierliche Integration, aber er ist sehr flexibel und modular. Es gibt viele Plugins für Jenkins, mit denen Sie Ihre Anwendungen bereitstellen können:
Für unsere Anwendung habe ich Jenkins mit Publish over SSH konfiguriert, das eine erfolgreich erstellte WAR-Datei auf den Zielserver kopiert und dann ein Skript ausführt, das die Sicherung und Bereitstellung durchführt. Hoffe das hilft!
quelle
Ein Remote Execution + Konfigurationsmanagement-Tool eignet sich für die Anwendungsbereitstellung. Salz ist ein gutes Beispiel dafür .
quelle
Puppet ist nicht wirklich für die Bereitstellung konzipiert, da bei einer großen Anzahl von Dateien Probleme auftreten können. Sie können in capistrano nach App-Bereitstellung suchen.
http://rubyforge.org/projects/capistrano/
quelle