Dlaczego ludzie używają Puppet/Chef z tworzeniem chmury Amazon zamiast tylko używać CloudInit?

Planujemy użyć instancji AMI EC2, które nie są "pre-pieczone". Tzn. kiedy są spun up, Są to gołe instalacje AWS linux. Nasz proces bootstrap pobierze różne potrzebne nam instalacje, np. python, tomcat. Będziemy mieć min 3 instancje i max 8.

Biorąc pod uwagę te wymagania, czy użycie Puppet/Chef byłoby przydatne zamiast korzystania z tworzenia chmur Amazon (CloudInit)?

Najlepsze jest to, że gdybyśmy użyli Puppet, to mielibyśmy programowanie deklaratywne, które jest łatwiejsze do sprawdzenia, aby zobaczyć, co się dzieje w porównaniu ze skryptem. Również CloudInit ma limit rozmiaru skryptu 16K, który możemy lub nie możemy napotkać.

Czy ktoś przeniósł się z CloudInit do Puppet lub Chef z konkretnego powodu, który mogą podać tutaj w odpowiedzi na moje pytanie?

Author: MattW., 2012-08-17

4 answers

Czy jest przewaga nad CloudInit? Tak, oczywiście, wielu z nich!

Jasne, można pisać od góry do dołu uruchamiać skrypty CloudInit, aby zapewnić serwer. Ale co się dzieje, gdy trzeba zmienić plik konfiguracyjny, dodać użytkownika, zaktualizować pakiet lub zainstalować nowy pakiet? W końcu logujesz się na serwery lub piszesz skrypty, aby to zrobić, i nieuchronnie niespójny stan serwerów.

CloudInit nie jest zarządzaniem konfiguracją. Jeśli zdecydujesz się rozpocząć korzystanie z konfiguracji oprogramowanie do zarządzania, użyj cloud init tylko do jednego zadania: do bootsrap The Puppet/Chef / other agent.

Puppet nie tylko pomaga zautomatyzować instalację pakietów, konfigurację klawiszy ssh lub dostrojenie sterty Tomcat. Zapewnia stan rzeczy. Gdy programista rozwiązuje problemy z aplikacją Java o 3 nad ranem i zmieni konfigurację Tomcat, Puppet zmieni ją z powrotem. Możesz szybko zmienić wersję Pythona dla wszystkich lub grup węzłów, a jeśli ktoś zainstaluje inną wersję, Puppet ją zmieni do tyłu.

Gdy zmieni się stos aplikacji i zaczniesz używać, powiedzmy RabbitMQ, Jetty lub nowego RDBMS, możesz łatwo przetestować i wdrożyć zmiany na dziesiątkach lub tysiącach serwerów.

Istnieje wiele innych powodów, aby korzystać z oprogramowania do zarządzania konfiguracją, takich jak raportowanie back-end, audyt i zgodność z przepisami bezpieczeństwa.

 76
Author: czervik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-17 01:54:20

Całym celem zarządzania konfiguracją jest przewijanie maszyn w sposób przewidywalny i konsekwentny. CloudFormation i cloudinit są świetne, gdy ograniczasz się wyłącznie do AWS (chociaż debugowanie szablonów CloudFormation jest marnym doświadczeniem ), ale co z aplikacjami, które używają zarówno zasobów centrum danych, jak i AWS, lub lokalnych środowisk testowych lub maszyn programistycznych?

Jeśli istniejesz wyłącznie w AWS, to pewnie możesz uciec z cloudinit i nic więcej, ale jestem nie są przekonani, że jest to realistyczne dla aplikacji na dowolną skalę (na przykład Netflix przygotowuje swoje ami przy użyciu technologii OSS, które napisali i udostępnili światu; rozważ ten film , aby poznać szczegóły). Wysoce dostępne aplikacje są ponadregionalne, często oparte na VPC, mają tendencję do tworzenia kopii zapasowych w centrach danych w vpn, a to nawet nie dotyczy środowisk demo, staging, testing ani development. Jako ktoś, kto jest oskarżony o zaopatrzenie maszyn Ostatni rzeczy chcę czy są powtarzanie pracy lub utknąć debugowania wielu metod aprowizacji.

Stąd szef kuchni lub Kukiełka. Działają tak samo dobrze dla AWS, jak dla mojego centrum danych i tak samo dobrze dla mojej maszyny programistycznej działającej Vagrant , jak i dla środowisk demo, których czasami potrzebuję w locie. Wolę uruchomić Chef lub Puppet z cloudinit niż utrzymać zarówno cloudinit, jak i Chef lub Puppet.

 62
Author: Christopher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:05

Dla serwerów typu throw away, powiedzmy działających za grupą autoscaling powiedziałbym, że cloudinit jest chyba wystarczający. skrypty powłoki Linuksa lub skrypty Windows powershell powinny załatwić sprawę.

Jeśli jest to długo działający serwer planujesz zarządzać może chef, puppet, lub docker może dać ci przewagę, jak wspomniano w zaakceptowanej odpowiedzi. Jeśli nie widzisz korzyści po ich użyciu, prawdopodobnie nie potrzebujesz narzędzia.

 5
Author: egrubbs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-04 20:09:24

Z mojego doświadczenia wynika, że są proste rzeczy, które można łatwo zrobić za pomocą gotowych narzędzi GUI, które zapewnia AWS, ale gdy przejdziesz do bardziej złożonych rzeczy, zaczynasz dowiadywać się, że istnieją ograniczenia tego, co możesz zrobić tylko za pomocą ich narzędzi.

W tym momencie możesz albo przestać, albo znaleźć inne narzędzia (takie jak Chef lub Puppet), które pomogą Ci osiągnąć te bardziej złożone cele, a także robić prostsze rzeczy.

Twój wybór.

 0
Author: Brad Knowles,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-22 22:45:53