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.