Ja patrząc na szefa zautomatyzować Magento wdrożenia - zarówno w standardowych Magento opcji hostingu, a także środowisk takich jak EC2. Poszukałem go i widzę wiele przepisów, ale żaden z nich nie wydaje mi się kanoniczny. Czy jest jakiś konkretny scenariusz szefa kuchni, który jest lepszy / najlepszy? Ponadto, jeśli wcześniej zajmowałeś się rozmieszczaniem szefów kuchni w PHP, czego chciałbyś wiedzieć, kiedy zaczynałeś?
10
Odpowiedzi:
Jest prawie niemożliwe, aby mieć jeden zestaw uniwersalnych procedur. Odniosłem sukces, pisząc skrypt Bash, który wykonuje polecenia
chef-client
na listach hostów dostarczonych przezknife search
. Procedury wyglądają tak…Serwer Open Source Chef Server 10.18.2 na Ubuntu 12.04 LTS
$branch
n98-magerun.phar
n98-magerun.phar
$revision
jako nowe wydanieŹródło: https://gist.github.com/parhamr/6177160#file-2-deployment
źródło
To jak mam podchodzić tego obszaru podczas noszenia Wanna Be sysadmin / devops rolę. Większość poniższych będzie tylko ogólnymi zasadami, których staram się przestrzegać, a nie specyficznymi dla Szefa Kuchni.
Skończyłem z Puppet, ponieważ znalazłem w tym czasie więcej zasobów i czułem się łatwiejszy do odebrania.
Spojrzałem na różne gotowe moduły dostępne dla takich rzeczy jak apache, php5 itp. Wiele z nich wydawało się robić znacznie więcej, niż potrzebowałem i będąc tak obeznanym z platformą, nie wierzyłem, co się dzieje. Uznałem, że łatwiej będzie mi po prostu określić, co powinienem zrobić na każdym typie węzła.
Proces rozpocząłem od udostępnienia lokalnego środowiska programistycznego zespołu (vargrant + pudełko wirtualne). Dla każdej usługi / komponentu stworzyłem moduł: php5, apache2, redis, mysql itp.
Gdy środowisko programistyczne było stabilne / działało, zacząłem budować środowisko QA. Zdefiniowałem ogólne typy węzłów dla serwerów WWW, redis, lakierów itp., Które ponownie wykorzystały te same moduły co dev. Po wykonaniu tej czynności etapowe i produkcyjne potrzebne były minimalne zmiany, aby rozpocząć i uruchomić.
Podczas pisania i pisania swoich przepisów / szablonów powinieneś rozważyć, w jaki sposób można je ponownie wykorzystać / uogólnić. Nie koduj na stałe takich rzeczy, jak ścieżki lub użytkownik / grupa, które mogłyby się zmieniać między dystrybucjami / projektami / środowiskami. Ponieważ patrzysz na uogólnione podejście, przypuszczam, że dużą przeszkodą będzie radzenie sobie z różnicami między rozkładami * nix.
Co najważniejsze, utrzymanie jest proste. Zautomatyzuj / standaryzuj najważniejsze / czasochłonne części środowiska. Iteruj, ewoluuj.
źródło