Samouczek szefa kuchni - Przekształć infrastrukturę w kod



Chef Tutorial to drugi blog z serii blogów Chef. Ten blog wyjaśnia architekturę szefa kuchni i komponenty szefa kuchni, takie jak książki kucharskie, przepisy itp., Z przykładami.

Samouczek szefa kuchni

Chef Tutorial to drugi blog z serii blogów Chef. W moim poprzedni blog , Wyjaśniłem, czym jest szef kuchni, zarządzanie konfiguracją i jak szef kuchni osiąga zarządzanie konfiguracją za pomocą przypadku użycia Gannett.

W tym samouczku szefa kuchni zostaną omówione następujące tematy:





Jestem pewien po przeczytaniu mojego poprzedni blog musisz być ciekawy, jak dokładnie działa Chef. Pierwsza sekcja tego bloga z samouczkiem szefa kuchni szczegółowo wyjaśni Ci architekturę szefa kuchni, co rozwieje wszystkie Twoje wątpliwości.



Samouczek szefa kuchni - Architektura szefa kuchni

Jak pokazano na poniższym diagramie, istnieją trzy główne komponenty Szefa kuchni:

  • Stacja robocza
  • serwer
  • Węzły

Architektura szefa kuchni - samouczek szefa kuchni - Edureka

Samouczek szefa kuchni - stacja robocza



Stacja robocza to lokalizacja, z której pochodzą wszystkie konfiguracje szefa kuchnizarządzany. Ta maszyna przechowuje wszystkie dane konfiguracyjne, które można później przesłać do centralnego serwera Chef. Te konfiguracje są testowane na stacji roboczej przed przekazaniem jej do serwera Chef. Stacja robocza składa się z narzędzia wiersza poleceń o nazwie Nóż, który jest używany do interakcji z serwerem Chef. Może istnieć wiele stacji roboczych, które wspólnie zarządzają centralnym serwerem Chef.

Stacje robocze są odpowiedzialne za wykonywanie poniższych funkcji:

  • Pisanie książek kucharskich i przepisów, które zostaną później przesłane na centralny serwer szefa kuchni
  • Zarządzanie węzłami na centralnym serwerze Chef

Rozumiemy teraz po kolei powyższe punkty.

Pisanie książek kucharskich i przepisów, które zostaną później przesłane na centralny serwer szefa kuchni

Przepisy: Receptura to zbiór zasobów opisujących określoną konfigurację lub zasady. Opisuje wszystko, co jest wymagane do skonfigurowania części systemu. Użytkownik pisze przepisy, które opisują, w jaki sposób Chef zarządza aplikacjami i narzędziami (takimi jak Apache HTTP Server, MySQL lub Hadoop) oraz jak mają być konfigurowane.

Te przepisy opisują szereg zasobów, które powinny znajdować się w określonym stanie, tj. Pakiety, które powinny zostać zainstalowane, usługi, które powinny być uruchomione lub pliki, które powinny zostać zapisane.

Później na blogu , Pokażę ci, jak napisać przepis na instalację pakietu Apache2 na węzłach Chef, pisząc kod ruby ​​w programie Chef Workstation.

Książki kucharskie: Wiele przepisów można pogrupować w jedną książkę kucharską. Książka kucharska definiuje scenariusz i zawiera wszystko, co jest wymagane do obsługi tego scenariusza:

  • Receptury, które określają zasoby do wykorzystania i kolejność, w jakiej mają być stosowane
  • Wartości atrybutów
  • Dystrybucje plików
  • Szablony
  • Rozszerzenia programu Chef, takie jak biblioteki, definicje i zasoby niestandardowe

Zarządzanie węzłami na centralnym serwerze Chef

System stacji roboczej będzie miał wymagane narzędzia wiersza poleceń do kontrolowania i zarządzania każdym aspektem centralnego serwera Chef. Rzeczy takie jak dodanie nowego węzła do centralnego serwera Chef, usunięcie węzła z centralnego serwera Chef, modyfikacja konfiguracji węzłów itp. Mogą być zarządzane z samej stacji roboczej.

Zobaczmy teraz, jakie komponenty Workstation są wymagane do wykonywania powyższych funkcji.

Stacje robocze składają się z dwóch głównych elementów:

Narzędzie noża: To narzędzie wiersza poleceń może być używane do komunikacji z centralnym serwerem Chef ze stacji roboczej. Dodawanie, usuwanie, zmiana konfiguracji węzłów na centralnym serwerze Chef zostanie przeprowadzona za pomocą tego narzędzia Knife. Korzystając z narzędzia Knife, książki kucharskie można przesyłać na centralny serwer szefa kuchni i role, a także zarządzać środowiskami. Zasadniczo każdy aspekt centralnego serwera Chef można kontrolować ze stacji roboczej za pomocą narzędzia Knife.

Lokalne repozytorium Chef: Jest to miejsce, w którym przechowywane są wszystkie komponenty konfiguracyjne centralnego serwera Chef. To repozytorium Chef można zsynchronizować z centralnym serwerem Chef (ponownie za pomocą samego narzędzia noża).

Samouczek szefa kuchni - serwer szefa kuchni

Serwer Chef działa jako centrum danych konfiguracyjnych. Chef Server przechowuje książki kucharskie, zasady stosowane do węzłów i metadane opisujące każdy zarejestrowany węzeł zarządzany przez klienta Chef.

Węzły używają programu Chef-Client, aby poprosić serwer Chef Server o szczegóły konfiguracji, takie jak przepisy, szablony i dystrybucje plików. Klient Chef wykonuje wtedy tak dużo pracy konfiguracyjnej, jak to tylko możliwe, na samych węzłach (a nie na serwerze Chef). Każdy węzeł ma zainstalowane oprogramowanie Chef Client, które pobierze konfigurację z centralnego serwera Chef, która ma zastosowanie do tego węzła. To skalowalne podejście rozdziela wysiłek konfiguracyjny w całej organizacji.

Samouczek szefa kuchni - węzły szefa kuchni

Węzły mogą być serwerem wirtualnym opartym na chmurze lub serwerem fizycznym we własnym centrum danych, zarządzanym za pomocą centralnego serwera Chef. Głównym składnikiem, który musi być obecny w węźle, jest agent, który ustanowi komunikację z centralnym serwerem Chef. Nazywa się to klientem szefa kuchni.

Klient Chef pełni następujące funkcje:

  • Jest odpowiedzialny za interakcję z centralnym serwerem Chef.
  • Zarządza początkową rejestracją węzła na centralnym serwerze Chef.
  • Pobiera książki kucharskie i stosuje je w węźle, aby je skonfigurować.
  • Okresowe odpytywanie centralnego serwera Chef w celu pobrania nowych elementów konfiguracji, jeśli takie istnieją.

Kliknij tutaj, aby dowiedzieć się, jak zainstalować serwer Chef, stację roboczą i węzeł

Samouczek szefa kuchni - zalety szefa kuchni:

Ten samouczek szefa kuchni będzie niekompletny, jeśli nie uwzględnię głównych zalet programu Chef:

  • Możesz zautomatyzować całą infrastrukturę za pomocą programu Chef. Wszystkie zadania, które były wykonywane ręcznie, można teraz wykonać za pomocą narzędzia Chef.
  • Możesz skonfigurować tysiące węzłów w ciągu kilku minut za pomocą Chef.
  • Automatyzacja szefa kuchni współpracuje z większością ofert chmur publicznych, takich jak .
  • Chef nie tylko zautomatyzuje wszystko, ale również będzie utrzymywał systemy pod stałą kontrolą i potwierdzi, że system jest faktycznie skonfigurowany tak, jak jest to wymagane (Chef Agent / Klient wykonuje tę pracę). Jeśli ktoś popełni błąd modyfikując plik, Chef to poprawi.
  • Całą infrastrukturę można zarejestrować w postaci repozytorium Chef, które można wykorzystać jako plan do odtworzenia infrastruktury od podstaw.

Mam nadzieję, że do tej pory podobał Ci się ten samouczek szefa kuchni, wystarczy teoretyczne posty! pozwól nam się zabawić praktycznymi.

Samouczek szefa kuchni | Pierwsze kroki z szefem kuchni | Edureka

Samouczek szefa kuchni - praktyczne

Tutaj wyjaśnię ci, jak stworzyć przepis, książkę kucharską i szablon na stacji roboczej szefa kuchni. Wytłumaczę ci również, jak wdrożyć książkę kucharską ze stacji roboczej do programu Chef-Client (węzeł Chef).

Używam dwóch obrazów wirtualnych, jednego dla stacji roboczej Chef, a drugiego dla węzła Chef. W przypadku serwera Chef będę używać hostowanej wersji programu Chef (w chmurze). Możesz także użyć fizycznej maszyny dla Chef Server.

Krok 1: Zainstaluj Chef DK (Development Kit) na swojej stacji roboczej Chef.

Chef DK to pakiet zawierający wszystkie narzędzia programistyczne, których będziesz potrzebować podczas kodowania Chefa. Oto link do pobrania Szef kuchni DK .

Tutaj wybierz system operacyjny, którego używasz. Używam CentOS 6.8, więc kliknę Red Hat Enterprise Linux .

Skopiuj łącze zgodnie z używaną wersją CentOS. Używam CentOS 6, jak widać, że zaznaczyłem na powyższym zrzucie ekranu.

Przejdź do terminala stacji roboczej i pobierz Chef DK za pomocą polecenia wget i wklej link.

Wykonaj to:

wget https://packages.chef.io/stable/el/6/chefdk-1.0.3-1.el6.x86_64.rpm

Pakiet został pobrany. Nadszedł czas, aby zainstalować ten pakiet przy użyciu rpm.

Wykonaj to:

rpm -ivh chefdk-1.0.3-1.el6.x86_64.rpm

Chef DK jest teraz zainstalowany na mojej stacji roboczej.

Krok 2: Utwórz recepturę na stacji roboczej

Zacznijmy od utworzenia przepisu na stacji roboczej i przetestujmy go lokalnie, aby upewnić się, że działa.Utwórz folder o nazwie Chef-repo. Możemy tworzyć nasze przepisy w tym folderze.

suma cyfr liczby w java

Wykonaj to:

mkdir chef-repo cd chef-repo

W tym katalogu chef-repo utworzę przepis o nazwie edureka.rb. .rb jest rozszerzeniem używanym dla języka Ruby. Użyję edytora vim, możesz użyć dowolnego innego edytora, takiego jak gedit, emac, vi itp.

Wykonaj to:

vim edureka.rb

Tutaj dodaj następujące informacje:

plik '/ etc / motd' content 'Welcome to Chef' end

Ten Recipe jest dureka .rb tworzy plik o nazwie / etc / motd z zawartością „Welcome to Chef”.

przekazywanie przez wartość vs przekazywanie przez odwołanie java

Teraz użyję tego przepisu, aby sprawdzić, czy działa.

Wykonać to:

chef-apply edureka.rb

W repozytorium szefa kuchni utworzono plik, który zawiera treść Witamy w Chef.

Krok 3: Mprzygotowanie pliku receptury do zainstalowania pakietu httpd

Zmodyfikuję recepturę, aby zainstalować pakiet httpd na mojej stacji roboczej i skopiuję plik index.html do domyślnego katalogu głównego dokumentu, aby potwierdzić instalację. Domyślną akcją dla zasobu pakietu jest instalacja, dlatego nie muszę oddzielnie określać tej akcji.

Wykonać to:

vim edureka.rb

Tutaj dodaj następujące informacje:

pakiet 'httpd' usługa 'httpd' wykonaj akcję [: włącz,: start] end file '/var/www/html/index.html' do content 'Welcome to Apache in Chef' end

Teraz zastosuję te konfiguracje, wykonując poniższe polecenie:

Wykonać to:

chef-apply edureka.rb

Wykonanie polecenia jasno opisuje każde wystąpienie w recepturze. Instaluje pakiet Apache, włącza i uruchamia usługę httpd na stacji roboczej. I tworzy plik index.html w domyślnym katalogu głównym dokumentu z zawartością „Welcome to Apache in Chef”.

Teraz potwierdź instalację Apache2, otwierając przeglądarkę internetową. Wpisz swój publiczny adres IP lub nazwę swojego hosta. W moim przypadku jest to localhost.

Krok 4: Teraz stworzymy naszą pierwszą książkę kucharską.

Utwórz katalog o nazwie książki kucharskie i wykonaj poniższe polecenie, aby wygenerować książkę kucharską.

Wykonać to:

mkdir książki kucharskie cd książki kucharskie szef kuchni generuje książkę kucharską httpd_deploy

httpd_deploy to nazwa nadana książce kucharskiej. Możesz podać dowolną nazwę.

Przejdźmy do tego nowego katalogu httpd_deploy.

Wykonać to:

cd httpd_deploy

Zobaczmy teraz strukturę plików utworzonej książki kucharskiej.

Wykonać to:

drzewo

Krok 5: doutwórz plik szablonu.

Wcześniej utworzyłem plik z pewną zawartością, ale nie pasuje to do moich przepisów i struktur książki kucharskiej. Zobaczmy więc, jak możemy stworzyć szablon dla strony index.html.

Wykonać to:

szef kuchni generuje szablon httpd_deploy index.html

Teraz, jeśli widzisz strukturę mojego pliku książki kucharskiej, jest tam utworzony folder z szablonami nazw z plikiem index.html.erb. Zmodyfikuję ten plik szablonu index.html.erb i dodam do niego moją recepturę. Zobacz poniższy przykład:

Przejdź do katalogu domyślnego

Wykonać to:

cd / root / chef-repo / cookbook / httpd_deploy / templates / default

Tutaj, edytuj szablon index.html.erb, używając dowolnego edytora, który Ci odpowiada. Użyję edytora VIM.

Wykonać to:

vim index.html.erb

Teraz dodaj następujące informacje:

Witamy we wdrożeniu Chef Apache

Krok 6: doutwórz przepis za pomocą tego szablonu.

Przejdź do katalogu Recipes.

Wykonaj t jego:

cd / root / chef-repo / cookbooks / httpd_deploy / recipes

Teraz edytuj plik default.rb przy użyciu dowolnego edytora. Użyję edytora VIM.

Wykonać to:

vim default.rb

Tutaj dodaj następujące informacje:

pakiet 'httpd' usługa 'httpd' wykonaj akcję [: włącz,: start] end template '/var/www/html/index.html' do source 'index.html.erb' end

Teraz wrócę do folderu repozytorium szefa kuchni i uruchomię / przetestuję przepis na mojej stacji roboczej.

Wykonać to:

cd / root / chef-repo chef-client --local-mode --runlist 'przepis [httpd_deploy]'

Zgodnie z moim przepisem, Apache jest zainstalowany na mojej stacji roboczej, usługa jest uruchamiana i włączana podczas rozruchu. Również plik szablonu został utworzony w moim domyślnym katalogu głównym dokumentu.

Teraz, gdy przetestowałem moją stację roboczą. Czas skonfigurować serwer Chef.

Krok 7: Skonfiguruj serwer Chef

Będę korzystał z hostowanej wersji Chef Server w chmurze, ale możesz również korzystać z komputera fizycznego. Ten serwer szefa kuchni jest obecny pod adresem manage.chef.io

Tutaj utwórz konto, jeśli go nie masz. Po utworzeniu konta zaloguj się przy użyciu swoich danych logowania.

Tak wygląda Chef Server.

Jeśli logujesz się po raz pierwszy, pierwszą rzeczą, którą będziesz robić, będzie utworzenie organizacji. Organizacja to w zasadzie grupa maszyn, którymi będziesz zarządzać za pomocą Chef Server.

Najpierw przejdę do zakładki administracja. Tam już stworzyłem organizację o nazwie edu. Dlatego muszę pobrać zestaw startowy na moją stację roboczą. Ten zestaw startowy pomoże Ci przesłać pliki ze stacji roboczej na serwer Chef. Kliknij ikonę ustawień po prawej stronie i kliknij Zestaw startowy.

Po kliknięciu tam pojawi się opcja pobrania zestawu startowego. Po prostu kliknij, aby pobrać plik zip zestawu startowego.

Przenieś ten plik do katalogu głównego.Teraz rozpakuj ten plik zip, używając polecenia unzip w swoim terminalu. Zauważysz, że zawiera katalog o nazwie chef-repo.

Wykonać to:

rozpakuj chef-starter.zip

Teraz przenieś ten zestaw startowy do katalogu cookbook w katalogu chef-repo.

Wykonać to:

mv starter / root / chef-repo / cookbook

Książki kucharskie szefa kuchni są dostępne w Cookbook Super Market, możemy przejść do Chef SuperMarket. Pobierz wymagane książki kucharskie z witryny supermarket.chef.io . Pobieram jedną z plików Cookbook, aby zainstalować stamtąd Apache.

Wykonać e t godz jest:

cd chef-repo knife z książką kucharską do pobrania learn_chef_httpd

Do książki kucharskiej Apache została pobrana kula Tar. Teraz musimy wyodrębnić zawartość z tego pobranego pliku Tar. W tym celu użyję polecenia tar.

tar -xvf learn_chef_httpd-0.2.0.tar.gz

co to jest anakonda dla pythona

Wszystkie wymagane pliki są tworzone automatycznie w ramach tej książki kucharskiej. Nie ma potrzeby dokonywania żadnych modyfikacji. Sprawdźmy opis przepisu w folderze z przepisami.

Wykonaj t godz jest :

cd / root / chef-repo / learn_chef_httpd / recipes cat default.rb

Teraz po prostu prześlę tę książkę kucharską na mój Chef Server, ponieważ wydaje mi się idealna.

Krok 8: Prześlij książkę kucharską na serwer Chef.

Aby przesłać pobraną książkę kucharską Apache, najpierw przenieś ten plik learn_chef_httpd do folderu Cookbooks w repozytorium szefa kuchni. Następnie zmień katalog na książki kucharskie.

Wykonaj t godz jest :

mv / root / chef-repo / learn_chef_httpd / root / chef-repo / cookbooks

Teraz przejdź do tego katalogu z książkami kucharskimi.

Wykonaj to:

książki kucharskie na płytach CD

Teraz w tym katalogu wykonaj poniższe polecenie, aby przesłać plik Apache Cookboodo:

Exec ute t godz jest:

przesyłanie książki kucharskiej noża learn_chef_httpd

Zweryfikuj książkę kucharską w konsoli zarządzania serwerem Chef. W sekcji zasad znajdziesz przesłaną przez siebie książkę kucharską. Zobacz zrzut ekranu poniżej:

Teraz naszym ostatnim krokiem jest dodanie węzła Chef. Skonfigurowałem stację roboczą, serwer Chef i teraz muszę dodać moich klientów do serwera Chef w celu automatyzacji.

Krok 9: Dodawanie węzła Chef do serwera Chef.

Dla celów demonstracyjnych użyję jednej maszyny CentOS jako węzła szefa kuchni. Do jednego serwera Chef mogą być podłączone setki węzłów. Kolor terminala mojej maszyny Node różni się od koloru stacji roboczej, dzięki czemu będziesz w stanie rozróżnić oba.

Potrzebuję tylko adresu IP mojego węzła, aby wykonać poniższe polecenie w mojej maszynie Nodejest.

Exec u t jest t godz jest:

ifconfig

Dodam węzeł szefa kuchni do serwera, wykonując polecenie Knife Bootstrap, w którym określę adres IP węzła szefa kuchni i jego nazwę. Wykonaj polecenie pokazane poniżejw:

Exec ute t godz jest:

nóż bootstrap 192.168.56.102 --ssh-user root --ssh-password edureka --node-name chefNode

To polecenie zainicjuje również instalację klienta Chef w węźle Chef. Możesz to sprawdzić z CLI na stacji roboczej za pomocą polecenia noża, jak pokazano poniżejw:

Exec ute t godz jest:

Lista węzłów noża

Możesz również zweryfikować z serwera Chef. Przejdź do zakładki węzły w konsoli zarządzania serwerem, tutaj zauważysz, że węzeł, który dodałeś, jest obecny. Zobacz zrzut ekranu poniżej.

Krok 10: Zarządzaj listą uruchomień węzła

Zobaczmy, jak możemy dodać książkę kucharską do węzła i zarządzać jej listą Uruchom z serwera Chef. Jak widać na poniższym zrzucie ekranu, kliknij kartę Akcje i wybierz opcję Edytuj listę Uruchom, aby zarządzać listą Uruchom.

W dostępnych przepisach możesz zobaczyć naszą learn_chef_httpd Recipe, możesz ją przeciągnąć z dostępnych pakietów do bieżącej listy uruchomień i zapisać listę uruchomień.

Teraz zaloguj się do swojego węzła i po prostu uruchom chef-client, aby wykonać Run List.

Exec ute t godz jest:

główny klient

Mam nadzieję, że spodobał Ci się ten samouczek szefa kuchni i dowiedziałeś się, jak można używać programu Chef do konfigurowania setek węzłów. Szef kuchni odgrywa kluczową rolę w wielu organizacjach, aby osiągnąć DevOps. Dzięki Chef organizacje częściej udostępniają aplikacje i są bardziej wiarygodnebszkło.

Jeśli znalazłeś tego bloga na „ Samouczek szefa kuchni ' istotnych, Sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Szkolenie Edureka DevOps Certification Training pomaga uczniom zdobyć wiedzę na temat różnych procesów DevOps i narzędzi, takich jak Puppet, Chef, Jenkins, Nagios i GIT, do automatyzacji wielu kroków w SDLC.