1. Przegląd Puppet to otwartoźródłowe narzędzie do automatyzacji konfiguracji i wdrażania oprogramowania, które jest łatwe w użyciu i potężne, zyskuje coraz większą uwagę, a wiele dużych firm IT wykorzystuje obecnie Puppet do zarządzania i wdrażania oprogramowania w klastrach, na przykład Google używa Puppet do zarządzania ponad 6 000 komputerami stacjonarnymi Mac (dane z 2007 roku). Ten artykuł głównie przedstawia metodę instalacji, architekturę projektową oraz sposób użycia kukiełki.
2. Architektura projektowania Puppet opiera się na architekturze C/S. Po stronie serwera przechowuje cały kod konfiguracyjny serwera klienta, który nazywany jest manifest in puppet. Po pobraniu manifestu przez klienta, serwer może być skonfigurowany zgodnie z manifestem, na przykład zarządzanie pakietami, użytkownikami oraz plikami.
Jak pokazano na powyższym rysunku, workflow lalki wygląda następująco: (1) Lalka klienta nazywa facter, a facter wykrywa niektóre zmienne hosta, takie jak nazwa hosta, rozmiar pamięci, adres IP itp. pupppetd przesyła te informacje do serwera przez połączenie SSL; (2) Mistrz marionetek po stronie serwera wykrywa nazwę hosta klienta, następnie znajduje odpowiadającą mu konfigurację węzła w manifestie i analizuje tę część zawartości. Parsowanie dzieli się na kilka etapów: sprawdzanie składni oraz zgłaszanie błędów, jeśli składnia jest błędna. Jeśli składnia jest poprawna, kontynuuj analizę, a wynik analizy wygeneruje pośredni "pseudokod", a następnie wyśle pseudokod do klienta; (3) Klient otrzymuje "pseudokod" i go wykonuje, a klient wysyła wynik wykonania do serwera; (4) Strona serwera zapisuje wynik wykonania klienta do loga. W procesie pracy PUPPET warto zwrócić uwagę na dwa punkty: po pierwsze, aby zapewnić bezpieczeństwo, klient i master opierają się na SSL i certyfikatach, a tylko klient uwierzytelniony przez certyfikat master może komunikować się z masterem; Po drugie, puppet utrzymuje system w określonym stanie, którego się spodziewasz, i utrzymuje go cały czas, na przykład wykrywając plik i zapewniając, że zawsze istnieje, zapewniając, że usługa SSH jest zawsze włączona, jeśli plik zostanie usunięty lub usługa SSH zamknięta, następnym uruchomieniem puppeta (domyślnie 30 minut), plik zostanie odtworzony lub uruchomiony serwis SSH.
3. Instalacja oprogramowania Nie zaleca się używania polecenia apt-get podczas instalacji, ponieważ lalka pobrana przez to polecenie ma błąd. Można go zainstalować bezpośrednio z kodu źródłowego, a oprogramowanie, które trzeba zainstalować, to ruby, facter i puppet.
3.1 Procedura instalacji Edytuj /etc/host, aby zmodyfikować nazwę hosta, ponieważ puppet opiera się na certyfikatach i zawiera nazwę hosta w certyfikacie; Zainstaluj Ruby, Facter i Puppet na Master i Slave, a do instalacji Facter i Puppet użyj Ruby Install.rb.
3.2 Struktura katalogów po instalacji (1) Katalog instalacji Katalog instalacyjny jest przechowywany w /etc/puppet i manifestuje się w manifestach tego katalogu. Inne pliki wykonywalne pod /user/sbin to głównie obejmują: puppet: Używany do uruchamiania niezależnych plików mainfest napisanych przez użytkownika, takich jak: puppet -l /tmp/manifest.log manifest.pp puppetd: Program kliencki działający na zarządzanym hostie, taki jak: puppet –server servername –waitforcert 60 puppetmasterd: Program serwerowy działający na maszynie zarządzającej, taki jak: puppetmasterd – debug Program certyfikacji Puppetca Puppet służy głównie do uwierzytelniania certyfikatów niewolników, takich jak: Sprawdź niewolnika, aby się uwierzytelnić: puppetca –lista Certyfikuj tych niewolników: puppetca -s –a puppetrun służy do połączenia z klientem, wymuszając uruchomienie lokalnego pliku konfiguracyjnego, na przykład: puppetrun -p 10 –host host1 –host host2 -t remotefile -t serwer internetowy (2) Pliki konfiguracyjne puppet.conf Główny plik konfiguracyjny Puppeta to /etc/puppet/puppet.conf dla użytkowników root oraz ~user/.puppet/puppet.conf dla zwykłych użytkowników Szczegółowe parametry konfiguracyjne można znaleźć w następstwie:
http://docs.puppetlabs.com/references/stable/configuration.html#configuration-files fileserver.conf Plik konfiguracyjny serwera plików marionetkowego. Użyj ścieżki do pliku konfiguracyjnego i zezwalaj/odmawiaj konfiguracji uprawnień dostępu, zobacz http://docs.puppetlabs.com/guides/file_serving.html
3.3 Weryfikacja, że instalacja zakończyła się sukcesem Wybierz sługę, aby zweryfikować z panem, zakładając, że gospodarzem niewolnika jest niewolnik00, a gospodarzem gospodarza to gospodarzem, wpisz na niewolnika00: puppetd –test –server server name Następnie spójrz na slave'a, który ma być uwierzytelniony na masterhost: puppetca – lista Jeśli to w porządku, możesz zobaczyć, jak slave00 podpisuje certyfikat niewolnika: puppetca -s -a W ten sposób slave00 przeszedł weryfikację certyfikatu i mógł dalej współpracować z masterem. Zapisz plik site.pp w katalogu /etc/puppet/manifests masterhost, który brzmi: domyślny węzeł { plik { "/tmp/test": content=>"cześć", tryb => 0644;
}
} Jednocześnie wpisz nazwę serwera puppetd –test –server na slave00, sprawdź folder /tmp slave00 i wygeneruj nowy test pliku, którego zawartość to hello, a uprawnienia do pliku to -rw-r—r-. W ten sposób instalacja kukiełkowa okazuje się skuteczna
|