Instalacja menadżera konfiguracji Puppet

Puppet dostępny jest w komercyjnej wersji Enterprise i bezpłatnej OpenSource. W artykule tym zajmiemy się instalacją wersji OpenSource w systemie CentOS 7 ale wspomnimy też o wersji Enterprise.

W skład pakietu Puppet (Enterprise) wchodzą komponenty po stronie agenta:

  • Puppet agent – klient, który komunikuje się z serwerem.
  • Puppet – rdzeń platformy zarządzania konfiguracją. Zawiera specjalny język programowania do opisywania pożądanego stanu systemu.
  • Facter – narzędzie profilowania systemu, wykorzystywane do wysyłania do serwera ważnych informacji o systemie.
  • Hiera – narzędzie używane do konfiguracji własnych klas.
  • MCollective (Marionette Collective) – framework do budowania systemu orkiestracji serwera lub równoległego wykonywania zadań.

oraz komponenty po stronie serwera:

  • Puppet Server – aplikacja uruchamiana w JVM, która świadczy usługi agentom (klientom). Agenci pobierają od serwera katalogi z konfiguracją węzłów.
  • Puppet Master – aplikacja Ruby, która kompiluje konfiguracje dla węzłów agentów.
  • PuppetDB – baza, która zawiera dane generowane przez Puppeta i API do analizowania tych danych.
  • R10k – narzędzie zarządzania kodem.
  • Razor Server – aplikacja do provisioningu systemów przez PXE.
  • PostgreSQL – DBMS używana przez PuppetDB
  • ActiveMQ – messsage broker używany przez MCollective.
  • Nginx – web serwer używany przez Puppet Enterprise Console.
  • Console – interfejs webowy (tylko dla Puppet Enterpise).

Narzędzia klienckie dla wersji Puppet Enterpise:

  • Puppet orchestrator – kontrola wdrażanych zmian w infrastrukturze.
  • Puppet access – narzędzie do autentykacji użytkowników.
  • Code manager – narzędzie do zarządzania kodem i  synchronizacji plików.
  • PuppetDB CLI – linia komend bazy PuppetDB.

 

Architektura Agent / Master.

W tej architekturze na zarządzanym węźle uruchamiany jest agent, który co pewien czas wysyła pewne dane do serwera i pobiera z niego tzw. katalog. W katalogu tym znajduje się konfiguracja pożądanego stanu agenta.

Architektura Stand-Alone.

W tej architekturze  każdy węzeł ma swoją kopię konfiguracji i sam kompiluje swój katalog. Aplikacja puppet apply uruchamiana jest okresowo przez cron.

 

Wymagania wstępne.
Ponieważ serwera Puppeta pracuje jako Certificate Authority (CA) czasy na serwerze i klientach powinny być zsynchronizowane. Instalujemy zatem na serwerze i kliencie NTP oraz synchronizujemy czas:

Wszystkie węzły muszą mieć ponadto skonfigurowaną tą samą strefę czasową:

Puppet korzysta z nazw domenowych hostów do komunikacji z zarządzanymi hostami dlatego ważne aby wszystkie węzły miały odpowiednie wpisy na serwerze DNS lub ewentualnie w plikach /etc/hostname na wszystkich węzłach.

Instalacja.

Na serwerze i agentach instalujemy repozytorium PuppetLabs:

 

Instalacja Puppet Serwera.

Domyślnie Puppet Server skonfigurowany jest do wykorzystywania 2GB pamięci, co możemy zmienić w pliku:

Aby zmienić użycie 2GB na 512MB, zastępujemy wpis:

wpisem:

Domyślnie Puppet master nie wymaga żadnej dodatkowej konfiguracji, można uruchomić usługę puppetserver. Jeżeli chcemy jednak zmienić nazwę domenową Puppet mastera to robimy to w pliku:

Uruchomienie i autostart Puppet Server.

Odblokowanie portu Puppeta na serwerze:

 

Instalacja Puppet Agenta.

Konfiguracja:

Zmienna runinterval kontroluje ile agent ma czekać na ponowne pobranie katalogu z konfiguracją z Puppet Servera. Można go zmienić i wartość zapisać także w sekundach jeżeli jest taka potrzeba.

Uruchomienie i autostart Puppet Agenta:

Wyjście:

 

Sygnowanie certyfikatu agenta na serwerze.

W architekturze agent/master serwer musi zatwierdzić certyfikat każdego agenta, który się będzie do niego podłączał.

Po stronie serwera wyświetlamy listę certyfikatów oczekujących na zatwierdzenie:

Można wylistować także zatwierdzone i nie zatwierdzone żądania. Zatwierdzone żądania zaczynają się od znaku “+”:

Zatwierdzenie certyfikatu:

Teraz klient Puppeta może komunikować się z serwerem.

Jeżeli mamy wiele żądań od agentów o zatwierdzenie ich certyfikatów możemy je sygnować jedną komendą:

Certyfikat możemy odwołać w razie potrzeby komendą:

Po zatwierdzeniu certyfikatu przeprowadzamy test na kliencie:

 

One Reply to “Instalacja menadżera konfiguracji Puppet”

Leave a Reply

Your email address will not be published. Required fields are marked *