Wybór włóczęgi

Pytanie

Czy ktos moze wyjasnic dlaczego lepiej wybrac provisionery marionetkowe lub Chef vagrant, a nie provisioner shell?

Tło

Jestem w trakcie zaczynania z Vagrant. Jedną z rzeczy, z którymi mam problem, jest decyzja, którego provisionera użyć. Do tej pory odniosłem pewien sukces przy użyciu provisionera powłoki, ale to było więcej pracy niż się spodziewałem, aby go uruchomić niezawodnie.

W tej chwili, Nie znam ruby, puppet czy chef, ale chętnie się ich nauczę, jeśli będę musiał. Moje wczesne doświadczenie z puppet and chef polega na tym, że jeśli ktoś inny ma przepis, który robi dokładnie to, co chcesz, to działa naprawdę dobrze, ale zrobienie czegoś niestandardowego oznacza powrót do kodowania rozwiązania w ruby.

Jestem świadomy artykułów porównujących kukiełkę i kucharza i mniej martwię się o to, którego z nich użyć, zamiast wiedzieć, kiedy i dlaczego powinienem ich używać w wszystkie.

Author: Andrew Walker, 2011-10-13

3 answers

Pełne ujawnienie: jestem pracownikiem laboratoriów Marionetek. Ale wybrałem Puppet jako produkt ponad 2 lata przed dołączeniem do nich.

Zalecałbym użycie Puppet lub Chef zamiast powłoki, jeśli Twoje konfiguracje mają A) mieć jakikolwiek stopień złożoności i b) zmieniać się w czasie - lub oczekujesz, że Twoje środowisko instalacyjne zmieni się w sposób, który może zmienić sposób, w jaki twoje wdrożenie działa. Twoje skrypty mogą być bardzo dobre, ale ostatecznie, chyba że śledzisz wspaniałe praktyki programistyczne wokół nich, Testowanie i QA ' ING, itp.

Wokół DevOps jest cała grupa Literatów omawiających to pojęcie, ale sprowadza się to do zasady "długu technicznego" - mamy tendencję do robienia rzeczy teraz w łatwy sposób, a tym samym postrzegamy je jako prostsze, kosztem rosnącej złożoności i trudności później.

Jedną z mocnych stron lalki jest jej deterministyczna natura - manifest, który piszesz, musi być programowo przekształcony przez Puppet w model budowanego serwera. Jest to postrzegane przez ludzi jako bardziej "trudne", ale powiedziałbym, że trudność jest zmniejszona, jeśli uśrednisz ją wzdłuż krzywej cyklu życia Twojej technologii. Innymi słowy, marionetka zmusza cię do myślenia teraz, ale następnie wdrożyć do skalowania z łatwością, zamiast myśleć później i ponownie inżynierii, jak iść. Zapłać gotówką teraz, a nie kredytem, z odsetkami, później.

Jeśli jesteś po prostu ściągając manifesty innych ludzi, w pewnym momencie wpadniesz w kłopoty - chociaż chcielibyśmy, aby tak nie było, praca z marionetką dzisiaj tak jest, ponieważ piszą je, aby zająć się ogólną sprawą, a nie konkretnym systemem. Wiele manifestów ogólnego przeznaczenia staje się przydatnych tylko wtedy, gdy osiągniesz lepsze zrozumienie marionetki.

Więc zamiast zacząć od tego, chciałbym przejść przez doskonały Learning Puppet przewodnik na początek aby zrozumieć podstawy. Krzywa uczenia się lalki jest stroma, ale po krótkim czasie się wyrównuje.

Istnieją inne powody, aby używać innych provisionerów lub narzędzi, ale z pewnością argumentowałbym, że lepiej jest używać Puppet lub Chef niż próbować zapewnić, że skrypty powłoki robią dokładnie to, co myślisz, że powinny robić, tak długo, jak trzeba tworzyć nowe środowiska.

 27
Author: eshamow,
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
2011-10-21 04:50:16

Z wolnością wyboru przychodzi komplikacja wyboru tego, co jest dla Ciebie właściwe.

Chef Solo - Chef solo jest najbardziej idealny, jeśli dopiero zaczynasz pracę z szefem kuchni lub serwer szefa kuchni jest po prostu zbyt ciężki dla twojej sytuacji. Chef solo pozwala osadzać wszystkie książki kucharskie w projekcie, jak również, co jest dobre dla projektów, które chcą śledzić swoje książki kucharskie w tym samym repozytorium. Chef solo działa samodzielnie – nie wymaga serwera chef ani żadnego innego serwer do rozmowy; po prostu działa sam na maszynie wirtualnej.

Chef Server - Chef server jest przydatny dla firm lub osób, które zarządzają wieloma projektami, ponieważ pozwala na udostępnianie książek kucharskich w wielu projektach. Same książki kucharskie są przechowywane na serwerze, a klient pobiera książki kucharskie po uruchomieniu.

Puppet - provisioner Puppet uruchamia autonomiczne manifesty Puppet, które są przechowywane na serwerze i pobierane do maszyny wirtualnej klienta, gdy jest stworzony. Serwer provisioner nie wymaga serwera Puppet i działa na samej maszynie wirtualnej.

Puppet Server - provisioner serwera Puppet łączy się z serwerem Puppet i konfiguruje maszynę wirtualną klienta za pomocą konfiguracji węzła na tym serwerze.

Inne narzędzia, skrypty powłoki, itp. - Czy używasz czegoś innego niż to, co jest wbudowane w Vagrant? Provisionery są po prostu podklasami Vagrant::Provisioners::Base, co oznacza, że możesz łatwo zbudować własną, jeśli potrzebujesz powstań.

Możesz również sprawdzić dokumentację, docs.vagrantup.com/v2

 10
Author: Noah,
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
2014-07-29 16:20:51

Wybrałbym Shell provisioner, a następnie niech skrypt shell sklonuje Twoje repozytorium puppet/chef z github lub bitbucket. Skrypt może skonfigurować klucz ssh, aby umożliwić automatyczne klonowanie git. Korzyści są takie, że większość dostawców usług w chmurze również to obsługuje, dzięki czemu można używać tego samego skryptu.Ten blog to Git, marionetka i włóczęga, one man and The cloud blog

 4
Author: Mark,
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
2013-07-29 15:12:00