Dlaczego warto używać Puppet do automatyzacji i orkiestracji

Firma Puppet wystawia rachunek za narzędzie automatyzacji Puppet jako de facto standard automatyzacji dostarczania i bieżącej obsługi infrastruktury hybrydowej. Kiedyś było to z pewnością prawdą: Puppet nie tylko sięga wstecz do 2005 roku, ale obecnie twierdzi, że 40 000 organizacji na całym świecie jest użytkownikami, w tym 75 procent z listy Fortune 100. Chociaż Puppet jest nadal bardzo silnym produktem, który zwiększył swoją szybkość i możliwości ponad przez lata konkurenci, w szczególności Szef Kuchni, zmniejszyli tę lukę.

Jak można się spodziewać po nestorze przestrzeni automatyzacji IT, Puppet ma bardzo dużą kolekcję modułów i obejmuje gamę od CI / CD do infrastruktury natywnej dla chmury, chociaż wiele z tych funkcji jest zapewnianych za pośrednictwem dodatkowych produktów. Chociaż Puppet jest przede wszystkim systemem opartym na modelach z agentami, obsługuje operacje wypychania z Puppet Tasks. Puppet Enterprise jest nawet dostępna jako usługa na Amazon.

Produkty lalek

Aktualne oferty Puppet obejmują Open Source Puppet, Puppet Enterprise, Puppet Pipelines, Puppet Discovery, Puppet Bolt, Puppet Container Registry i Puppet Forge. Open source Puppet, zautomatyzowany mechanizm administracyjny dla systemów Linux, Unix i Windows, wykonuje zadania administracyjne (takie jak dodawanie użytkowników, instalowanie pakietów i aktualizowanie konfiguracji serwera) w oparciu o scentralizowaną specyfikację.

Puppet Enterprise dodaje funkcje orkiestracji, konsolę internetową i profesjonalne wsparcie dla Open Source Puppet. Pomaga w szerokim i głębokim skalowaniu automatyzacji w całej infrastrukturze i utrzymaniu jej zgodności. Puppet Discovery odkrywa tradycyjną infrastrukturę, zasoby natywne w chmurze i kontenery i umożliwia zarządzanie nimi.

Devops Puppet

Puppet Pipelines to platforma ciągłej integracji / ciągłego dostarczania, dostępna jako usługa hostowana i instalacja lokalna. Istnieją dwie oddzielne wersje potoków, dla aplikacji i dla kontenerów z Kubernetes.

Funkcja zadań marionetkowych bez agentów umożliwia wykonywanie zadań ad hoc, w przeciwieństwie do automatyzacji opartej na modelach za pomocą agentów. Zadania są dostępne w dwóch wersjach: Puppet Bolt o otwartym kodzie źródłowym i Puppet Enterprise Task Management. Bolt jest przeznaczony dla mniejszych infrastruktur, podczas gdy Enterprise Task Management, składnik Puppet Enterprise, jest przeznaczony dla dużych infrastruktur, które wymagają kontroli dostępu opartej na rolach, ścieżek audytu i przepływów pracy zorientowanych na zespół.

Puppet Container Registry (dawniej Distelli Europa), który jest dostępny w wersji bezpłatnej, premium (lub zespołowej) i korporacyjnej, zapewnia ujednolicony widok lokalnych i zdalnych rejestrów dla kontenerów Docker. Wersja premium dodaje obsługę wielu użytkowników i kontrolę dostępu; wersja dla przedsiębiorstw dodaje logowanie jednokrotne.

Kuźnia Marionetek

Puppet Forge to repozytorium modułów dla oprogramowania Puppet i Puppet Enterprise typu open source. Obecnie zawiera ponad 5500 gotowych modułów. Niektóre moduły mają zadania kukiełkowe, ale nie wszystkie. Niektóre moduły są testowane i obsługiwane przez Puppet w ramach Puppet Enterprise, a niektóre są zatwierdzane tylko przez Puppet.

Każdy moduł ma własne wymagania wstępne i procedurę instalacji. Nie powiem „Oto smoki”, ale powiem, że instalowanie modułów jest obszarem, w którym Puppet nie próbuje nawet kamuflować swoich korzeni jako narzędzia dla administratorów systemów Linux / Unix, mimo że w dzisiejszych czasach Windows całkiem nieźle sobie radzi (chyba że jako Mistrz).

Puppet Enterprise

Puppet Enterprise to ujednolicona platforma, która łączy podejście konfiguracyjne oparte na modelach z koniecznością wykonywania zadań, dzięki czemu można zarządzać infrastrukturą hybrydową. Obsługuje praktyki DevOps, takie jak kontrola wersji, przegląd kodu, automatyczne testowanie, ciągła integracja i automatyczne wdrażanie. Możesz także użyć Puppet do migracji obciążeń do chmury, kontenerów i chmury hybrydowej. Puppet pozwala wymusić pożądany stan konfiguracji, automatycznie korygować wszelkie nieoczekiwane zmiany i automatyzować zadania ad hoc.

Puppet Enterprise pomaga zmniejszyć ryzyko związane z błędnymi konfiguracjami zabezpieczeń i nieudanymi audytami poprzez ciągłe egzekwowanie zasad bezpieczeństwa i potwierdzanie zgodności. Zasadniczo Puppet Master automatycznie wysyła (wypycha) katalogi do swoich klientów co pół godziny, a następnie agenci Puppet na klientach porównują ten katalog z faktami dotyczącymi istniejącej konfiguracji i wprowadzają zmiany, jeśli to konieczne. Następnie agenci zwracają raport stanu do jednostki głównej, która może wygenerować ogólny raport zgodności. Bezpieczeństwo i zgodność są obsługiwane w ramach podstawowego zarządzania konfiguracją Puppet, a nie w osobnym komponencie.

Kukiełka w chmurze

Puppet Enterprise jest zintegrowany z wiodącymi dostawcami usług w chmurze: Amazon, Microsoft, VMware i Google. Pozwala usprawnić zarządzanie zasobami obliczeniowymi, magazynowymi i sieciowymi oraz skalować obciążenia w heterogenicznych środowiskach. Funkcjonalność znajduje się głównie w modułach specyficznych dla chmury, na przykład w module puppetlabs / aws, który zapewnia interfejs do API AWS i umożliwia nie tylko udostępnianie instancji, ale także opisywanie całej infrastruktury AWS i modelowanie relacji między różnymi składniki.

Puppet Enterprise nie obsługuje obecnie funkcji bezserwerowych. Puppet Pipelines, inna część portfolio, to narzędzie do zarządzania cyklem życia wydania kodu aplikacji deweloperskiej, który może obejmować funkcje bezserwerowe.

Zestaw rozwoju lalek

Puppet umożliwia zaawansowane tworzenie niestandardowych rozwiązań, umożliwiając pisanie własnych modułów. Obecnie oferuje zestaw deweloperski, który ułatwia generowanie nowych modułów, a także umożliwia konwersję starych modułów na kompatybilność z zestawem Puppet Development Kit (PDK). Pakiet PDK zawiera narzędzia do testowania, kompletny szablon modułu (w postaci plików YAML, Ruby i osadzonych plików Ruby) oraz narzędzia wiersza poleceń, które pomagają tworzyć, weryfikować i uruchamiać testy modułów Puppet.

Instalacja i konfiguracja Puppet

Istnieją dwa główne sposoby instalacji Puppet Enterprise: za pomocą AWS OpsWorks lub przez pobranie i zainstalowanie go samodzielnie, lokalnie lub w jednej lub więcej instancji w chmurze. (Zarządzanie maksymalnie 10 węzłami jest bezpłatne). Zanim wypróbujesz którąkolwiek z tych instalacji, możesz nauczyć się Puppet z maszyną Puppet Learning VM lub emulatorem Puppet online pokazanym poniżej.

Korzystając z AWS OpsWorks for Puppet Enterprise, usługi zarządzanej, możesz mieć w pełni skonfigurowanego mastera Puppet i uruchomić go na AWS w mniej niż 20 minut. OpsWorks to dobry wybór dla małych zespołów i sklepów, które nie mogą lub nie chcą zarządzać własną infrastrukturą Puppet.

Podstawowe kroki tworzenia instancji AWS OpsWorks for Puppet Enterprise rozpoczynają się od pobrania i zainstalowania narzędzi klienckich AWS CLI, Git i Puppet Enterprise. Utwórz klucz SSH, skonfiguruj konto GitHub za pomocą klucza SSH, zaloguj się do konsoli AWS, przejdź do usługi OpsWorks i kliknij „Utwórz serwer Puppet Enterprise”. Nadaj serwerowi krótką nazwę, wybierz region i typ instancji c4.large. Na następnej stronie powiedz, że nie używasz klucza SSH (w przypadku AWS - nie ma to nic wspólnego z kluczem GitHub SSH) i podaj link do repozytorium kontroli GitHub. Zaakceptuj ustawienia domyślne na stronie ustawień zaawansowanych, uruchom instancję serwera i pobierz zarówno poświadczenia, jak i zestaw startowy, zanim instancja zostanie zainicjowana. Reszta tego, czego potrzebujesz, znajduje się w zestawie startowym,ale w tym momencie będziesz już mieć działającego Mastera, który wymusza własną konfigurację.

Samodzielna instalacja Puppet Enterprise to znacznie dłuższa i bardziej skomplikowana operacja, która wymaga aktualizacji za każdym razem, gdy Puppet wyda nową wersję. Z drugiej strony możesz skorzystać z zasobów serwera, które już posiadasz.

Możesz zainstalować Puppet Enterprise za pomocą instalatora internetowego lub tekstowego w systemie RHEL, Ubuntu LTS lub Suse Linux, po pobraniu odpowiedniego archiwum i sprawdzeniu jego odcisku palca. Aby uzyskać link, musisz podać swój adres e-mail. Proponuję rozpocząć od instalacji monofonicznej opartej na sieci (wszystko w jednym węźle) i przyjąć wszystkie ustawienia domyślne. Zawsze możesz zaktualizować później. Możesz uniknąć większości problemów, jeśli zaczniesz od nowego obrazu systemu Linux - nie „pomagaj”, na przykład instalując PostgreSQL z wyprzedzeniem.

-

Koszt: Open source Puppet: bezpłatnie. Puppet Enterprise: 10 wolnych węzłów, 120 $ / węzeł / rok do 500 węzłów ze standardową obsługą. Puppet Discovery jest obecnie w wersji technicznej. Puppet Pipelines: pięć wolnych węzłów, 29,99 $ / węzeł / miesiąc do 100 węzłów ze standardową obsługą.

Platforma: Master: Red Hat, SUSE lub Ubuntu Linux. Agenci: Linux, Windows Vista lub nowszy, MacOS 10.10 lub nowszy, Solaris 10 lub 11. Cloud master dostępny jako AWS OpsWorks for Puppet Enterprise.