Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie...

22
Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef

Transcript of Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie...

Page 1: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef

Page 2: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 2

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i ChefKoncepcja infrastruktury jako kodu lub infrastruktury programowalnej pełni ważną rolę przy stosowaniu metodyki DevOps i stanowi pierwszy krok w zakresie łączenia dyscyplin tworzenia oprogramowania i utrzymania produktu w ramach organizacji.W ramach procesu tworzenia oprogramowania zespoły odpowiedzialne za utrzymanie od samego początku trwania projektu współpracują z zespołami odpowiedzialnymi za tworzenie oprogramowania – zamiast zaangażowania na etapie poprzedzającym wdrożenie – po to, aby zrozumieć wymagania do pracy aplikacji. Oba typy zespołów współpracują przez cały czas trwania cyklu tworzenia oprogramowania. Wymagania te są stosowane przy tworzeniu plików automatyzacji, które będą używane do inicjowania obsługi infrastruktury podczas wdrażania kodu przy użyciu narzędzi do automatyzacji.Dzięki przechowywaniu infrastruktury jako kodu w ramach tego samego systemu kontroli wersji co kod, zyskujemy możliwość śledzenia zmian, a dokonywanie wymaganych zmian w zakresie środowiska staje się kwestią uruchomienia skryptu automatyzacji. Oprócz szybszego tempa wdrażania infrastruktura jako kod może zapobiec niepożądanym zmianom konfiguracji w ramach środowiska. W przypadku dokonania zmiany, która nie ma swojego odbicia w kodzie, jej efekt zostanie anulowany przy okazji kolejnego wdrożenia.

Page 3: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 3

Platforma Microsoft Azure i infrastruktura jako kodPlatforma Microsoft Azure została zaprojektowana, aby stanowić docelową dla infrastruktury jako kodu i oferuje narzędzia, które ułatwiają zastosowanie tej koncepcji. Każda usługa w ramach platformy Azure jest dostępna za pośrednictwem narzędzi automatyzacji przy użyciu interfejsu wiersza polecenia systemu Azure lub programu Azure PowerShell. Połączenia te pozwalają na przygotowywanie i uruchamianie skryptów odpowiedzialnych za tworzenie zasobów w modelu IaaS (infrastruktura jako usługa) lub modelu PaaS (platforma jako usługa) dla dowolnej platformy. Oprócz tworzenia zasobów Azure, narzędzia takie jak Automatyzacja Azure oraz Konfiguracja żądanego stanu pozwalają, po ich wdrożeniu pod kątem konfiguracji środowiska, na głębsze zintegrowanie z usługami.Azure jest najwyższej klasy platformą platformą wspierającą technologie Open Source oraz systemów Linux, a temat wsparcia dla rozwiązań open source na platformie Azure można długo omawiać. Niemal jedna na trzy maszyny wirtualne Azure pracuje w oparciu o system Linux, istnieje także projekt open source w zakresie Konfiguracji żądanego stanu dla systemu Linux.

Usługa Azure Resource ManagerChoć tworzenie środowisk może zostać zaprogramowane za pośrednictwem programu PowerShell oraz interfejsu wiersza polecenia, komponenty takich środowisk są zazwyczaj postrzegane jako jeden obiekt. Usługa Azure Resource Manager pozwala na wdrażanie takich środowisk i zarządzanie nimi traktując je jak pojedynczy obiekt. Szablonyusługi Azure Resource Manager to pliki JSON, które przy użyciu deklaratywnej składni definiują zasoby do wspólnego wdrożenia. Szablony te mogą być następnie wdrażane przy użyciu kodu. Aby rozpocząć, sprawdź sekcję Szablony szybkiego startu Azure w serwisie GitHub.

Rozwiązania Chef i PuppetMamy świadomość, że wiele organizacji dokonało inwestycji w lokalny sprzęt, różnorodne platformy oraz zasoby do automatyzacji, jak np. rozwiązania Chef i Puppet. Azure obsługuje wszystkie wymienione scenariusze i pozwala klientom rozszerzyć dokonane już inwestycje o zasoby w chmurze.Zarówno rozwiązania Chef i Puppet są obsługiwane za pomocą rozszerzeń maszyn wirtualnych, co pozwala utworzonym maszynom wirtualnym na obsługę automatyzacji. Przy założeniu, że środowisko Chef lub Puppet zostało już skonfigurowane. Jeśli chcesz skonfigurować nowe środowisko, obrazy dla rozwiązań Chef i Puppet są dostępne do pobrania i wdrożenia na platformie Azure Marketplace.Przyjrzyjmy się bliżej tym dwóm zestawom narzędzi.

Page 4: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4

Automatyzacja wdrożenia maszyny wirtualnej Azure przy użyciu rozwiązania ChefChef to wspaniałe narzędzie w zakresie automatyzacji i konfiguracji pożądanego stanu.Nasza najnowsza wersja interfejsu cloud-api zapewnia bezproblemową integrację rozwiązania Chef z platformą Azure, pozwalając na inicjowanie i wdrażanie stanów konfiguracji przy użyciu pojedynczego polecenia.W niniejszym artykule zaprezentujemy, w jaki sposób skonfigurować środowisko Chef do obsługi maszyn wirtualnych Azure i przeprowadzimy przez proces tworzenia zasady lub „Cookbooka”, a następnie zainicjowania tego cookbooka na maszynie wirtualnej Azure.

Podstawowe informacje dotyczące narzędzia ChefPrzed rozpoczęciem sugeruję zapoznać się z podstawowymi pojęciami dotyczącymi narzędzia Chef. W tym miejscu można znaleźć doskonałą dokumentację, zalecamy pobieżne zapoznanie się z nią przed dalszą lekturą tego przewodnika. Zanim przejdziemy dalej podsumuję jednak podstawowe informacje.

Page 5: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 5

W skład architektury rozwiązania Chef wchodzą trzy główne komponenty: serwer programu Chef, klient (węzeł) programu Chef oraz stacja robocza programu Chef.Serwer programu Chef to nasz punkt zarządzania i istnieją dwa możliwe rozwiązania dla serwera Chef: hostowane i lokalne. W naszym przypadku będziemy używać rozwiązania hostowanego.Klient (węzeł) programu Chef to agent obecny na serwerach, którymi zarządzasz.Stacja robocza programu Chef to nasza stacja robocza administratora, gdzie tworzymy zasady i wykonujemy polecenia zarządzania. Z poziomu stacji roboczej Chef uruchamiamy polecenie knife, aby zarządzać naszą infrastrukturą.Istnieją też pojęcia takie jak „Cookbook” (książka kucharska) i „Recipe” (przepis). Są to w rzeczywistości zasady, które definiujemy i stosujemy w odniesieniu do naszych serwerów.

Przygotowywanie stacji roboczejNajpierw przygotujmy stację roboczą. Korzystamy ze standardowej stacji roboczej systemu Windows. Musimy utworzyć katalog, w którym będziemy przechowywać nasze pliki konfiguracyjne i cookbooki.Najpierw utwórz katalog o nazwie C:\chef.Następnie utwórz drugi katalog o nazwie c:\chef\cookbooks.Teraz musimy pobrać nasz plik ustawień platformy Azure, aby program Chef mógł komunikować się z naszą subskrypcją usługi Azure.Pobierz ustawienia publikowania z tej lokalizacji.Zapisz plik ustawień publikowania w katalogu C:\chef.

Tworzenie zarządzanego konta programu ChefZarejestruj się tutaj, aby utworzyć hostowane konto Chef.W trakcie rejestracji zostanie wyświetlona prośba o utworzenie nowej organizacji.

Page 6: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 6

Po utworzeniu swojej organizacji pobierz zestaw startowy. UwagaJeśli otrzymasz monit z ostrzeżeniem, że Twoje klucze zostaną zresetowane, możesz bezpiecznie kontynuować, gdyż na tym etapie infrastruktura nie została jeszcze skonfigurowana.Ten plik zip zestawu startowego zawiera pliki konfiguracyjne i klucze dla Twojej organizacji.

Konfigurowanie stacji roboczej programu ChefRozpakuj zawartość pliku chef-starter.zip do katalogu C:\chef.Skopiuj wszystkie pliki z chef-starter\chef-repo.chef do katalogu c:\chef.Twój katalog powinien teraz wyglądać podobnie jak na poniższym przykładzie.

Page 7: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 7

Twój plik knife.rb powinien teraz wyglądać podobnie jak na poniższym przykładzie.Te wiersze gwarantują, że narzędzie Knife odwołuje się do katalogu cookbooków w lokalizacji c:\chef\cookbooks, a także podczas obsługi platformy Azure korzysta z naszego pliku ustawień publikowania usługi Azure.

W katalogu głównym c:\chef powinny się znajdować cztery pliki, uwzględniając plik publikowania platformy Azure.Pliki PEM zawierają klucze prywatne organizacji i administratora do celów komunikacji, a plik knife.rb zawiera konfigurację knife. Musimy dokonać edycji pliku knife.rb.

cookbook_path [«#{current_dir}/cookbooks»]

Otwórz plik w dowolnym edytorze i zmodyfikuj wartość „cookbook_path” usuwając ze ścieżki ciąg /../, aby wartość ścieżki odpowiadała tej zamieszczonej powyżej.

Dodaj także następujący wiersz uwzględniając nazwę Twojego pliku ustawień publikowania platformy Azure. knife[:azure_publish_settings_file] = «twojanazwapliku.publishsettings»

Page 8: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 8

Instalowanie Chef Development KitNastępnie pobierz i zainstaluj zestaw ChefDK (Chef Development Kit), aby skonfigurować stację roboczą Chef.

Zainstaluj w domyślnej lokalizacji c:\opscode. Instalacja potrwa około 10 minut.

Upewnij się, że zmienna PATH zawiera wpisy dla C:\opscode\chefdk\bin;C:\opscode\chefdk\embedded\bin;c:\users\yourusername.chefdk\gem\ruby\2.0.0\binJeśli wpisy nie istnieją, pamiętaj, aby dodać te ścieżki!

MIEJ NA UWADZE, ŻE KOLEJNOŚĆ ŚCIEŻEK JEST ISTOTNA! Nieprawidłowa kolejność ścieżek opscode będzie powodować problemy.Przed przejściem dalej uruchom ponownie stację roboczą.Następnie zajmiemy się instalacją rozszerzenia Knife Azure. Pozwoli to udostępnić „wtyczkę Azure” dla narzędzia Knife.

Uruchom następujące polecenie.chef gem install knife-azure ––pre

UwagaArgument –pre gwarantuje, że otrzymujemy najnowszą wersję wtyczki Knife Azure, która zapewnia dostęp do najnowszego zestawu interfejsów API.

Page 9: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 9

Jest prawdopodobne, że w tym samym czasie zostanie także zainstalowana pewna liczba rozszerzeń.

Aby upewnić się, że wszystko zostało skonfigurowane prawidłowo, uruchom następujące polecenie.knife azure image list

Jeśli wszystko zostało skonfigurowane prawidłowo, zostanie wyświetlona przewijana lista dostępnych obrazów Azure.

Gratulacje. Staja robocza została skonfigurowana!

Tworzenie CookbookaCookbook jest używany przez program Chef do definiowania zestawu poleceń, które chcesz wykonać na zarządzanym kliencie. Tworzenie Cookbooka jest bardzo proste, a do generowania szablonu Cookbook używamy polecenia chef generate cookbook. Nadam swojemu Cookbookowi nazwę webserver, gdyż chcę stworzyć zasadę, która automatycznie wdraża usługi IIS.W katalogu C:\Chef uruchom następujące polecenie.

chef generate cookbook webserver

Zostanie wygenerowany zestaw plików w katalogu C:\Chef\cookbooks\webserver. Teraz musimy zdefiniować zestaw poleceń, które nasz klient Chef ma wykonywać na naszej zarządzanej maszynie wirtualnej.Polecenia są przechowywane w pliku default.rb. W tym pliku zdefiniujemy zestaw poleceń, które instalują i uruchamiają usługi IIS oraz kopiują plik szablonu do folderu głównego www.

Page 10: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 10

Zmodyfikuj plik C:\chef\cookbooks\webserver\recipes\default.rb i dodaj następujące wiersze.

powershell_script ‚Install IIS’ do action :run code ‚add-windowsfeature Web-Server’end

service ‚w3svc’ do action [ :enable, :start ]end

template ‘c:\inetpub\wwwroot\Default.htm’ do source ‘Default.htm.erb’ rights :read, ‘Everyone’end

Po zakończeniu zapisz plik.

Tworzenie szablonuJak wspomniano wcześniej konieczne jest wygenerowanie pliku szablonu, który będzie wykorzystywany jako nasza domyślna strona default.html.Uruchom następujące polecenie, aby wygenerować szablon.

chef generate template webserver Default.htm Przejdź do pliku C:\chef\cookbooks\webserver\templates\default\Default.htm.erb. Edytuj plik, dodając prosty kod HTML „Hello World”, a następnie zapisz plik.

Page 11: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 11

Przesyłanie Cookbooka do serwera programu ChefW tym kroku prześlemy kopię utworzonego na komputerze lokalnym Cookbooka do hostowanego serwera Chef. Po przesłaniu Cookbook zostanie wyświetlony na karcie Policy (Zasady).

knife cookbook upload webserver

Wdrożenie maszyny wirtualnej przy użyciu Knife AzurePrzeprowadzimy teraz wdrożenie maszyny wirtualnej Azure i użyjemy Cookbooka „Webserver”, który dokona instalacji naszej usługi sieci Web usług IIS oraz domyślnej strony internetowej.Aby to wykonać, użyj polecenia knife azure server create.Poniżej zamieszczono przykład takiego polecenia.

knife azure server create --azure-dns-name ‘diegotest01’ --azure-vm-name ‘testserver01’ --azure-vm-size ‘Small’ --azure-storage-account ‘portalvhdsxxxx’ --bootstrap-protocol ‘cloud-api’ --azure-source-image ‘a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-Datacenter-201411.01-en.us-127GB.vhd’ --azure-service-location ‘Southeast Asia’ --winrm-user azureuser --winrm-password ‘myPassword123’ --tcp-endpoints 80,3389 --r ‘recipe[webserver]’

Poszczególne parametry nie wymagają wyjaśniania. Podstaw preferowane zmienne i uruchom polecenie.

UwagaUżywając wiersza poleceń dokonuję także automatyzacji reguł filtrów sieci punktów końcowych za pomocą parametru –tcp-endpoints. Otwieram porty 80 i 3389, aby zapewnić dostęp do mojej strony internetowej i sesji RDP.

Po uruchomieniu polecenia przejdź do portalu Azure, a zobaczysz inicjowanie obsługi swojej maszyny.

Następnie wyświetlony zostanie wiersz poleceń.

Page 12: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 12

Po zakończeniu wdrożenia powinno być możliwe połączenie się z usługą sieci Web przez port 80, gdyż otworzyliśmy ten port przy inicjowaniu maszyny wirtualnej za pomocą polecenia Knife Azure. Ponieważ ta maszyna wirtualna jest tylko maszyną wirtualną w mojej usłudze chmury, połączę się z nią korzystając z adresu URL usługi chmury.

Należy pamiętać, że możemy połączyć się także przy użyciu sesji RDP z klasycznego portalu Azure przez port 3389.

Page 13: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 13

Instalacja rozwiązania Puppet Enterprise w Microsoft AzureRozwiązanie Puppet Enterprise jest aktualnie dostępne w ramach Microsoft Azure Marketplace, co pozwala na szybkie uruchamianie maszyn wirtualnych z najnowszą wersją PE do celów oceny.Niniejsza sekcja ma na celu pomoc w zainicjowaniu oprogramowania puppet master i puppet agent.

Instalowanie serwera Puppet MasterPrzed rozpoczęciem należy utworzyć konto Azure.

Krok 1. Otwórz portal Azure.W portalu Azure kliknij pozycję NEW (NOWY). W polu wyszukiwania wpisz „puppet enterprise” i zaznacz pozycję Puppet Enterprise 3.7.2.

Page 14: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 14

Krok 2. Wybierz obraz PE.Zaznacz Puppet Enterprise 3.7.2

Krok 3. Wybierz klasyczny model wdrożenia, zaznaczając w polu Select a Deployment Model (Zaznacz model wdrożenia) pozycję Classic.

NAZWA HOSTA: dowolna nazwa o długości 3–15 znaków, składająca się z liter, cyfr i łączników. Litery muszą być małymi literami; certyfikat SSL nie zostanie utworzony, jeśli podana nazwa zawiera wielkie litery.

NAZWA UŻYTKOWNIKA: podaj nazwę użytkownika. Właściwie jest to Twoje konto administracyjne pozwalające na dostęp do maszyny. Jako nazwy użytkownika nie należy wybierać nazw „puppet”, „pe-admin” lub „pe-puppet”.

Page 15: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 15

TYP UWIERZYTELNIANIA możesz wybrać opcję przesyłania klucza SSH albo podania hasła. W tych krokach użyjemy hasła: Kliknij opcję PROVIDE A PASSWORD (PODAJ HASŁO) i wpisz je.

POZIOM CENOWY: upewnij się, że została zaznaczona opcja co najmniej Standard_D2_v2 (2 rdzenie, 7 GB pamięci). Możesz zwiększyć rozmiar, nie jest to jednak konieczne i będzie skutkować wzrostem kosztów. Mniejszy rozmiar nie zapewni wystarczającej mocy obliczeniowej i wydajność maszyny wirtualnej nie będzie zadowalająca.

KONFIGURACJA OPCJONALNA: w sekcji ENDPOINTS (PUNKTY KOŃCOWE) skonfiguruj porty maszyny wirtualnej. Port SSH jest wstępnie ustawiony, ponieważ serwer puppet master może być uruchamiany tylko na obrazie Linuxa. Dodaj następujące porty obowiązkowe. Pierwszy z nich można wybrać z listy rozwijanej. Porty Puppet i MCollective są opcjonalne i muszą zostać dodane ręcznie.

HTTPS, aby otworzyć port 443 dla konsoli PE.Puppet, aby otworzyć port 8140 dla agentów puppet.MCollective, aby otworzyć port 61613 dla MCollective.

GRUPA ZASOBÓW: wybierz istniejącą grupę zasobów lub utwórz nową.

SUBSKRYPCJA: wybierz preferowaną subskrypcję.

LOKALIZACJA: wybierz swój region. Domyślnie pole region przyjmuje wartość regionu na Twoim koncie

Jeśli chcesz skorzystać z klucza SSH, postępuj zgodnie z instrukcjami dotyczącymi uzyskania wymagane-go certyfikatu X509, opisanymi w sekcji Generowanie klucza SSH.

Aby zapoznać się z dokumentacją dotyczącą użycia portów, zobacz sekcję Konfiguracja zapory w części Wymagania systemowe i preinstalacja.

Page 16: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 16

Po skonfigurowaniu swojej lokalizacji kliknij opcję Create (Utwórz).

Rozpoczyna się proces inicjowania obsługi. Instalacja PE trwa około 15 minut. Kliknij ikonę Virtual machines (classic) na lewym pasku nawigacyjnym. Kliknij utworzoną maszynę wirtualną. Zwróć uwagę na w pełni kwalifikowaną nazwę domeny (FQDN) poniżej nazwy DNS.

Na przykład: puppetmaster-w8msh322.cloudapp.net

Uwaga dotycząca ustawień DNS: platforma Azure dostarcza we-wnętrzną i zewnętrzną nazwę DNS dla maszyny wirtualnej. Dla potrzeb tych kroków używamy zewnętrznej nazwy DNS. W ten sposób można połączyć się z agentami puppet poza siecią Azure, typowy scena-riusz. Wymaga to jednak otwarcia dwóch dodatkowych portów w ob-szarze PUNKTÓW KOŃCOWYCH.

Połączenie za pomocą SSH z maszyną wirtualną PEPrzy użyciu CLI lub innego klienta ssh uruchom polecenie ssh <username>@<public DNS name> wpisując wymienioną wcześniej nazwę DNS.Na przykład: ssh [email protected].

Uwaga: Jeśli nie masz klienta SSH, pobierz bezpłatnie aplikację PuTTY z tej lokalizacji.

Przy pierwszym połączeniu SSH z serwerem puppet master zostanie wyświetlona prośba o zaakceptowanie klucza publicznego zdalnego hosta. Komunikat informuje, że nie może zostać ustalona autentyczność hosta oraz zawiera prośbę o potwierdzenie, czy połączenie ma mimo to zostać nawiązane. Wpisz „yes”. Następnie wpisz hasło zdefiniowane podczas konfigurowania maszyny wirtualnej PE.

Po upływie 15 minut przejdź do następnego kroku.

Page 17: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 17

Logowanie do konsoli PEPrzed utworzeniem maszyny wirtualnej agenta puppet musisz znać hasło, które zostało wygenerowane przy inicjowaniu obsługi serwera puppet master. Jest ono potrzebne, aby uzyskać dostęp do konsoli PE, sieciowego GUI, które pozwala na zarządzanie żądaniami węzłów, przypisywanie klas do węzłów, wywoływanie aplikacji puppet i wiele więcej. Aby uzyskać więcej, zobacz sekcję dotyczącą konsoli PE w dokumentacji w trybie online.

W tej sekcji uzyskasz hasło, a następnie dostęp do konsoli.

Krok 1. Uzyskaj poświadczenia konsoli.Uruchom sudo watch tail /etc/puppetlabs/installer/database_info.install Zlokalizuj ustawienie, q_puppet_enterpriseconsole_auth_password, do którego dołączono hasło. Powinno przypominać wyglądem: q_puppet_enterpriseconsole_auth_password=Foryurcit0 Jeśli hasło nie jest wyświetlane, konsola nie jest jeszcze gotowa.

Skopiuj hasło, aby użyć je w kroku 3.Nazwa użytkownika dla konsoli to admin.

Uwaga: Jeśli zapomnisz otworzyć port podczas konfiguracji serwera puppet master, możesz to zrobić później: na pulpicie nawigacyjnym Azure kliknij strzałkę na maszynie wirtualnej puppet master, kliknij pozycję PUNKTY KOŃCOWE, kliknij opcję Dodaj, wybierz autonomiczny punkt końcowy i zaznacz lub utwórz odpowiedni port.

Krok 2. Otwórz konsolę PE.W oknie przeglądarki wpisz „https://<publiczna nazwa DNS>”. Na przykład: „https://pe-demo.cloudapp.net”. Upewnij się, że używasz protokołu „https”, a nie „http”.To dobry sposób, aby sprawdzić czy Twoja maszyna wirtualna PE została utworzona. Jeśli zobaczysz okno logowania do konsoli, oznacza to, że maszyna wirtualna jest już gotowa (patrz obraz).

Krok 3. Zaloguj się do konsoli PE.W oknie logowania do konsoli wpisz nazwę użytkownika i hasło, aby się zalogować. Podczas pierwszego połączenia z konsolą wyświetlone zostanie ostrzeżenie o zabezpieczeniach SSL. Możesz bezpiecznie kontynuować. Aby uzyskać więcej informacji, zobacz dokumentację PE.

Ponieważ nie skonfigurowano jeszcze żadnych agentów, nie znajduje się tam wiele informacji. Kliknij pozycję Node (węzeł), a zostanie wyświetlony węzeł puppet master wraz z jego prywatną nazwą DNS. Po dodaniu agenta w kolejnej sekcji wrócimy do tej konsoli.

Uwaga: Jeśli serwer puppet master nie został zainstalowany poprawnie, sprawdź plik dziennika w następującej lokalizacji:

/var/log/upstart/puppetinit.log

Page 18: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 18

Instalowanie aplikacji Puppet AgentNiniejsze kroki pokazują, w jaki sposób uruchomić agenta puppet z użyciem maszyny wirtualnej Azure w momencie inicjowania obsługi administracyjnej Kroki te są podobne, jak w przypadku konfigurowania maszyny wirtualnej PE.

Krok 1. Uruchom przepływ pracy maszyny wirtualnej.W portalu Azure kliknij pozycję NEW (NOWA), a następnie kliknij

COMPUTE -> Windows Server 2012 R2 Datacenter.

Krok 2. Wybierz klasyczny model wdrożenia

W polu Select a Deployment Model (zaznacz model wdrożenia) wybierz pozycję Classic.

Page 19: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 19

Krok 3. Rozpocznij konfigurowanie maszyny wirtualnej.Podaj następujące informacje, a następnie kliknij strzałkę, aby przejść do następnej strony.

NAZWA HOSTA: dowolna nazwa o długości 3–15 znaków, składająca się z liter, cyfr i łączników.

NAZWA UŻYTKOWNIKA: może być dowolna. Właściwie jest to Twoje konto administracyjne pozwalające na dostęp do maszyny.

HASŁO: wybierz hasło.

POZIOM CENOWY: wybierz rozmiar, który będzie odpowiedni dla szacowanego obciążenia maszyny wirtualnej.

KONFIGURACJA OPCJONALNA: W sekcji EXTENSIONS (rozszerzenia) zaznacz opcję „Add Extension” (dodaj rozszerzenie). Wybierz rozszerzenie Puppet Enterprise Agent. Kliknij pozycję „Create” (Utwórz).

Krok 4: Skonfiguruj rozszerzenie, aby korzystało z serwera Puppet Master Wprowadź FQDN serwera Puppet Master. Następnie kliknij OK.

Wskazówka: kliknij ikonę Virtual machines (classic) na lewym pasku nawigacyjnym.

Kliknij maszynę wirtualną Puppet Master. Znajdź w pełni kwalifikowaną nazwę domeny (FQDN) poniżej nazwy DNS.

Krok 5: Kontynuuj konfigurowanie maszyny wirtualnej.

GRUPA ZASOBÓW: wybierz utworzoną wcześniej grupę zasobów.

Page 20: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 20

SUBSKRYPCJA: wybierz preferowaną subskrypcję.

LOKALIZACJA: wybierz preferowaną lokalizację.

Po skonfigurowaniu swojej lokalizacji kliknij opcję Create (Utwórz).Po zainicjowaniu obsługi maszyny wirtualnej instalowany jest agent puppet, a następnie dokonuje on rejestracji ze wskazanym serwerem puppet master. Ten proces może potrwać kilka minut.

Po jego zakończeniu agent wysyła żądanie certyfikatu do serwera master.

Zatwierdzanie żądania węzła agentaW niniejszej sekcji omówimy, jak wyświetlić agenta puppet w konsoli PE i zaakceptować żądanie podpisania certyfikatu (CSR) agenta.

Krok 1. Otwórz konsolę PE w ten sam sposób co poprzednio.

Krok 2. Zlokalizuj i zatwierdź żądanie agenta.

W górnej części okna konsoli kliknij sekcję node requests (żądania węzłów), aby otworzyć podgląd żądań węzłów. Na liście powinno być tylko jedno żądanie. Kliknij przycisk Accept (Akceptuj).

Jeśli Twój agent nie został wyszczególniony na stronie node requests, zobacz następującą sekcję.

Page 21: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 21

Nawiązywanie zdalnego połączenia z użyciem RDPW poniższych krokach opisano co należy zrobić, jeśli Twój agent puppet nie może nawiązać połączenia z serwerem puppet master.

Krok 1. Przejdź do pulpitu nawigacyjnego maszyny wirtualnej. W Azure kliknij ikonę Virtual machines (classic) na lewym pasku nawigacyjnym. Kliknij agenta maszyny wirtualnej.

Krok 2. Pobierz plik RDP. Pobierz plik RDP, klikając opcję „Connect” (Połącz) na pasku narzędzi w górnej części pulpitu nawigacyjnego. Kliknij dwukrotnie plik RDP, aby połączyć się z maszyną wirtualną. Identyfikator logowania to „hostname/username”. Aby uzyskać więcej informacji, zobacz Dokumentację Azure RDP.

Krok 3. Uruchom agenta Puppet.Wyszukaj cmd, kliknij prawym przyciskiem myszy pozycję Start Command Prompt with Puppet (Uruchom wiersz poleceń z Puppet) i kliknij opcję Run as administrator (Uruchom jako administrator). W programie PowerShell wpisz puppet agent --configprint server.

Czy Twój agent puppet próbuje połączyć się z prawidłowym węzłem puppet master?

W związku z ukończeniem przewodnika z wprowadzeniem sprawdź dokumentację Puppet Enterprise, aby dowiedzieć się więcej na temat możliwości w zakresie automatyzacji i konfiguracji PE.

Mamy nadzieję, że zawarte tu informacje okazały się pomocne! Rozpocznij swoją przygodą z infrastrukturą jako kodem na platformie Azure już dziś!

Page 22: Infrastruktura jako kod na platformie Azure z użyciem ... · Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef 4 Automatyzacja wdrożenia maszyny wirtualnej

Infrastruktura jako kod na platformie Azure z użyciem narzędzi Puppet i Chef