Ich suche nach Chefkoch, um Magento-Bereitstellungen zu automatisieren - sowohl in Standard-Magento-Hosting-Optionen als auch in Umgebungen wie EC2. Ich habe gegoogelt und sehe zahlreiche Rezepte, aber keines scheint mir wirklich ein kanonisches zu sein. Gibt es ein bestimmtes Kochskript, das besser / das Beste ist? Wenn Sie bereits Kocheinsätze mit PHP durchgeführt haben, was möchten Sie dann wissen, wenn Sie anfangen?
10
Antworten:
Es ist fast unmöglich, eine Einheitsroutine zu haben. Ich habe erfolgreich ein Bash-Skript geschrieben, das
chef-client
Läufe auf Listen von Hosts ausführt, die von bereitgestellt werdenknife search
. Die Prozeduren sehen so aus…Open Source Chef Server 10.18.2 unter Ubuntu 12.04 LTS
$branch
n98-magerun.phar
n98-magerun.phar
$revision
als neue Version definierteQuelle: https://gist.github.com/parhamr/6177160#file-2-deployment
quelle
So habe ich mich diesem Bereich genähert, während ich die Rolle des Sysadmin / Devops tragen wollte. Die meisten der folgenden sind nur allgemeine Prinzipien, denen ich zu folgen versuche, und nicht kochspezifisch.
Am Ende habe ich mich für Puppet entschieden, weil ich festgestellt habe, dass es zu diesem Zeitpunkt mehr Ressourcen gibt, und mich leichter für mich zu fühlen fühlte.
Ich habe mir die verschiedenen vorgefertigten Module angesehen, die für Dinge wie Apache, PHP5 usw. verfügbar sind. Viele von ihnen schienen weit mehr zu tun, als ich brauchte, und waren mit der Plattform so unbekannt, dass ich nicht vertraute, was vor sich ging. Ich entschied, dass es für mich einfacher sein würde, nur zu identifizieren, was ich für jeden Knotentyp tun musste.
Ich begann den Prozess mit der Bereitstellung der lokalen Entwicklungsumgebung des Teams (vargrant + virtual box). Für jeden Dienst / jede Komponente habe ich ein Modul erstellt: PHP5, Apache2, Redis, MySQL usw.
Sobald die Entwicklungsumgebung stabil war / funktionierte, begann ich mit dem Aufbau der QS-Umgebung. Ich habe generische Knotentypen für Webserver, Redis, Lacke usw. definiert, die dieselben Module wie dev wiederverwendeten. Sobald dies erledigt war, waren für Staging und Produktion nur minimale Änderungen erforderlich, um den Betrieb aufzunehmen.
Während Sie Ihre Rezepte / Vorlagen durchgehen und schreiben, sollten Sie überlegen, wie Sie sie wiederverwenden / verallgemeinern können. Codieren Sie keine Dinge wie Pfade oder Benutzer / Gruppen, die sich zwischen Distributionen / Projekten / Umgebungen ändern könnten. Da Sie einen verallgemeinerten Ansatz betrachten, würde ich vermuten, dass eine große Hürde darin besteht, Unterschiede zwischen * nix-Verteilungen zu beseitigen.
Am wichtigsten ist, dass behalten einfach ist. Automatisieren / standardisieren Sie die wichtigsten / zeitaufwändigsten Teile der Umgebung. Iterieren, weiterentwickeln.
quelle