Výukový program pro kuchaře - Transformujte infrastrukturu do kódu



Chef Tutorial je druhý blog ze série blogů Chef. Tento blog s příklady vysvětluje architekturu kuchařů a komponenty kuchařů, jako jsou kuchařské knihy, recepty atd.

Výukový program pro kuchaře

Chef Tutorial je druhý blog ze série blogů Chef. V mém předchozí blog Vysvětlil jsem, co je Chef, Configuration Management a jak Chef dosahuje Configuration Management pomocí případu použití Gannett.

V tomto výukovém programu pro kuchaře se budeme zabývat následujícími tématy:





Jsem si jistý, že po přečtení mého předchozí blog musíte být zvědaví, jak přesně šéfkuchař funguje. První část tohoto blogu Chef Tutorial vám podrobně vysvětlí architekturu šéfkuchaře, která odstraní všechny vaše pochybnosti.



Výukový program pro kuchaře - Architektura šéfkuchaře

Jak ukazuje následující diagram, existují tři hlavní komponenty šéfkuchaře:

  • Pracovní stanice
  • Server
  • Uzly

Chef Architecture - Chef Tutorial - Edureka

Výukový program pro kuchaře - pracovní stanice



Pracovní stanice je umístění, ze kterého jsou všechny konfigurace šéfkuchařepodařilo se. Tento stroj uchovává všechna konfigurační data, která lze později odeslat na centrální Chef Server. Tyto konfigurace jsou na pracovní stanici před odesláním do Chef Serveru testovány. Pracovní stanice se skládá z nástroje příkazového řádku s názvem Nůž, který se používá k interakci se serverem Chef. Může existovat více pracovních stanic, které společně spravují centrální Chef Server.

Za provádění následujících funkcí jsou odpovědné pracovní stanice:

  • Psaní kuchařských knih a receptů, které budou později přeneseny na centrální Chef Server
  • Správa uzlů na centrálním Chef serveru

Nyní pochopme výše uvedené body jeden po druhém.

Psaní kuchařských knih a receptů, které budou později přeneseny na centrální Chef Server

Recepty: Recept je sbírka prostředků, která popisuje konkrétní konfiguraci nebo zásadu. Popisuje vše, co je potřeba ke konfiguraci části systému. Uživatel píše recepty, které popisují, jak šéfkuchař spravuje aplikace a nástroje (například Apache HTTP Server, MySQL nebo Hadoop) a jak se mají konfigurovat.

Tyto recepty popisují řadu zdrojů, které by měly být v konkrétním stavu, tj. Balíčky, které by měly být nainstalovány, služby, které by měly být spuštěny, nebo soubory, které by měly být zapsány.

Později v blogu , Ukážu vám, jak napsat Recept na instalaci balíčku Apache2 na Chef Nodes napsáním rubínového kódu v Chef Workstation.

Kuchařské knihy: Více kuchařských receptů lze seskupit a vytvořit kuchařku. Kuchařka definuje scénář a obsahuje vše, co je k podpoře tohoto scénáře zapotřebí:

  • Recepty, které specifikují zdroje, které se mají použít, a pořadí, ve kterém mají být použity
  • Hodnoty atributů
  • Distribuce souborů
  • Šablony
  • Rozšíření šéfkuchaře, jako jsou knihovny, definice a vlastní prostředky

Správa uzlů na centrálním Chef serveru

Systém Workstation bude mít potřebné obslužné programy příkazového řádku pro ovládání a správu všech aspektů centrálního Chef Serveru. Věci, jako je přidání nového uzlu na centrální Chef Server, odstranění uzlu z centrálního Chef serveru, úprava konfigurací uzlů atd., Lze vše spravovat ze samotné pracovní stanice.

Nyní se podívejme, jaké komponenty pracovní stanice jsou nutné k provádění výše uvedených funkcí.

Pracovní stanice mají dvě hlavní součásti:

Nástroj nože: Tento nástroj příkazového řádku lze použít ke komunikaci s centrálním šéfkuchařským serverem z pracovní stanice. Přidávání, odebírání a změna konfigurací uzlů v centrálním Chef Serveru se provádí pomocí tohoto nástroje Knife. Pomocí nástroje Knife lze kuchařky nahrát na centrální Chef Server a role, lze také spravovat prostředí. V zásadě lze každý aspekt centrálního šéfkuchařského serveru ovládat z pracovní stanice pomocí nástroje Knife.

Místní úložiště kuchařů: Toto je místo, kde jsou uloženy všechny konfigurační komponenty centrálního Chef serveru. Toto úložiště kuchařů lze synchronizovat s centrálním serverem šéfkuchařů (opět pomocí samotného nástroje nůž).

Výukový program pro kuchaře - Chef Server

Chef Server funguje jako rozbočovač konfiguračních dat. Na serveru Chef jsou uloženy kuchařské knihy, zásady, které se vztahují na uzly, a metadata, která popisují každý registrovaný uzel, který je spravován klientem Chef.

Uzly pomocí klienta Chef požádají server Chef o podrobnosti konfigurace, jako jsou recepty, šablony a distribuce souborů. Chef-Client poté provede co největší část konfigurace na samotných uzlech (a nikoli na Chef serveru). Každý uzel má nainstalovaný software Chef Client, který stáhne konfiguraci z centrálního Chef Serveru použitelného pro daný uzel. Tento škálovatelný přístup distribuuje úsilí o konfiguraci v celé organizaci.

Výukový program pro kuchaře - uzly šéfkuchaře

Uzly mohou být cloudový virtuální server nebo fyzický server ve vašem vlastním datovém centru, který je spravován pomocí centrálního Chef Serveru. Hlavní komponentou, která musí být na uzlu přítomna, je agent, který naváže komunikaci s centrálním Chef serverem. Tomu se říká kuchařský klient.

Chef Client provádí následující funkce:

  • Je zodpovědný za interakci s centrálním Chef serverem.
  • Spravuje počáteční registraci uzlu na centrální Chef Server.
  • Stáhne kuchařky a použije je na uzel, aby je nakonfiguroval.
  • Pravidelné dotazování centrálního šéfkuchařského serveru za účelem načtení nových konfiguračních položek, pokud existují.

Kliknutím sem se dozvíte, jak nainstalovat Chef Server, Workstation a Node

Výukový program pro kuchaře - Výhody šéfkuchaře:

Tento výukový program pro kuchaře bude neúplný, pokud nezahrnu hlavní výhody šéfkuchaře:

  • Pomocí Chef můžete automatizovat celou infrastrukturu. Všechny úkoly, které byly prováděny ručně, lze nyní provádět pomocí nástroje Chef.
  • Pomocí Chef můžete nakonfigurovat tisíce uzlů během několika minut.
  • Chef automation pracuje s většinou nabídek veřejného cloudu, jako je .
  • Šéfkuchař nejenže automatizuje věci, ale také bude důsledně kontrolovat systémy a potvrdí, že systém je ve skutečnosti nakonfigurován tak, jak je požadováno (Chef Agent / Client dělá tuto práci). Pokud někdo udělá chybu úpravou souboru, Chef ji opraví.
  • Celá infrastruktura může být zaznamenána ve formě úložiště Chef, které lze použít jako podrobný plán pro obnovení infrastruktury od nuly.

Doufám, že jste si tento tutoriál šéfkuchaře užili až doposud, dost s teoretickými příspěvky! Pojďme se pobavit s praktickým.

Výukový program pro kuchaře | Začínáme s kuchařem | Edureka

Výukový program pro kuchaře - praktický

Zde vám vysvětlím, jak vytvořit recept, kuchařku a šablonu v Chef Workstation. Vysvětlím vám také, jak nasadit kuchařku z Workstation do Chef-Client (Chef Node).

Používám dva virtuální obrázky, jeden pro Chef Workstation a druhý pro Chef Node. Pro Chef Server použiji hostovanou verzi Chef (na cloudu). Můžete také použít fyzický stroj pro Chef Server.

Krok 1: Nainstalujte si Chef DK (Development Kit) do pracovní stanice Chef.

Chef DK je balíček, který obsahuje všechny vývojové nástroje, které budete potřebovat při kódování Chef. Zde je odkaz ke stažení Kuchař DK .

Zde vyberte operační systém, který používáte. Používám CentOS 6.8. Takže kliknu na Red Hat Enterprise Linux .

Zkopírujte odkaz podle verze CentOS, kterou používáte. Používám CentOS 6, jak vidíte, že jsem zvýraznil na výše uvedeném snímku obrazovky.

Přejděte do terminálu pracovní stanice a pomocí příkazu wget si stáhněte Chef DK a vložte odkaz.

Proveďte toto:

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

Balíček je nyní stažen. Je čas nainstalovat tento balíček pomocí rpm.

Proveďte toto:

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

zásobník a hromada paměti v java

Chef DK je nyní nainstalován na mé pracovní stanici.

Krok 2: Vytvořte recept na pracovní stanici

Začněme vytvořením receptu na pracovní stanici a otestujte jej lokálně, abychom se ujistili, že funguje.Vytvořte složku s názvem chef-repo. Můžeme vytvořit naše recepty uvnitř této složky.

Proveďte toto:

mkdir chef-repo cd chef-repo

V tomto adresáři kuchař-repo vytvořím recept s názvem edureka.rb. .rb je přípona používaná pro rubín. Použiji editor vim, můžete použít jakýkoli jiný editor, který chcete jako gedit, emac, vi atd.

Proveďte toto:

vim edureka.rb

Zde přidejte následující:

soubor '/ etc / motd' obsah 'Vítejte v kuchaři' končí

Tento R.ecipe je dureka .rb vytvoří soubor s názvem / etc / motd s obsahem „Welcome to Chef“.

datové struktury a algoritmy v java tutoriálu

Nyní použiji tento recept ke kontrole, zda funguje.

Vykonat tento:

kuchař - použijte edureka.rb

V kuchařském repo je tedy vytvořen soubor, který má obsah Vítejte v kuchaři.

Krok 3: Modifikace souboru receptů k instalaci balíčku httpd

Upravím recept tak, aby se na moji pracovní stanici nainstaloval balíček httpd a zkopíroval se soubor index.html do výchozího kořene dokumentu, aby se instalace potvrdila. Výchozí akcí pro prostředek balíčku je instalace, proto tuto akci nemusím specifikovat samostatně.

Vykonat tento:

vim edureka.rb

Sem přidejte následující:

balíček 'httpd' služba 'httpd' udělat akci [: povolit,: spustit] koncový soubor '/var/www/html/index.html' udělat obsah 'Vítejte v Apache in Chef' konec

Nyní použiji tyto konfigurace provedením následujícího příkazu:

Vykonat tento:

kuchař - použijte edureka.rb

Provedení příkazu jasně popisuje každou instanci v receptu. Nainstaluje balíček Apache, povolí a spustí službu httpd na pracovní stanici. A vytvoří soubor index.html ve výchozím kořenovém adresáři dokumentu s obsahem „Vítejte v Apache v kuchaři“.

Nyní potvrďte instalaci Apache2 otevřením webového prohlížeče. Zadejte svou veřejnou IP adresu nebo jméno vašeho hostitele. V mém případě je to localhost.

Krok 4: Nyní vytvoříme naši první kuchařku.

Vytvořte adresář s názvem kuchařky a provedením níže uvedeného příkazu vygenerujte kuchařku.

Vykonat tento:

kuchařské knihy mkdir kuchařské knihy cd kuchař generuje kuchařku httpd_deploy

httpd_deploy je název daný kuchařce. Můžete dát jakékoli jméno, které chcete.

Přesuňme se do tohoto nového adresáře httpd_deploy.

Vykonat tento:

cd httpd_deploy

Nyní se podívejme na strukturu souborů vytvořené kuchařky.

Vykonat tento:

strom

Krok 5: Cznovu vytvořte soubor šablony.

Dříve jsem vytvořil soubor s nějakým obsahem, ale to se nehodí k mým strukturám receptů a kuchařek. Podívejme se tedy, jak můžeme vytvořit šablonu pro stránku index.html.

Vykonat tento:

kuchař vygeneruje šablonu httpd_deploy index.html

Nyní, když vidíte moji strukturu souborů Cookbook, existuje složka vytvořená pomocí šablon jmen se souborem index.html.erb. Upravím tento soubor šablony index.html.erb a přidám k němu svůj recept. Viz níže uvedený příklad:

Přejděte do výchozího adresáře

Vykonat tento:

cd / root / chef-repo / kuchařka / httpd_deploy / templates / default

Tady upravte šablonu index.html.erb pomocí libovolného editoru, který vám vyhovuje. Použiji editor vim.

Vykonat tento:

vim index.html.erb

Nyní přidejte následující:

Vítejte v nasazení šéfkuchaře Apache

Krok 6: Cpřipravte recept s touto šablonou.

Přejděte do adresáře Recepty.

Provést t jeho:

cd / root / chef-repo / kuchařky / httpd_deploy / recepty

Nyní upravte soubor default.rb pomocí libovolného editoru, který chcete. Použiji editor vim.

Vykonat tento:

vim default.rb

Sem přidejte následující:

balíček 'httpd' služba 'httpd' udělat akci [: povolit,: spustit] konec šablony '/var/www/html/index.html' udělat zdroj 'index.html.erb' konec

Nyní se vrátím do složky chef-repo a spustím / otestuji svůj recept na mé pracovní stanici.

Vykonat tento:

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

Podle mého receptu je Apache nainstalován na mé pracovní stanici, služba se spouští a povoluje při bootování. Také byl vytvořen soubor šablony v mém výchozím kořenovém adresáři dokumentu.

Teď, když jsem otestoval svoji pracovní stanici. Je čas nastavit Chef Server.

Krok 7: Nastavení serveru šéfkuchaře

Budu používat hostovanou verzi Chef Serveru v cloudu, ale můžete použít i fyzický stroj. Tento Chef-Server je přítomen na manage.chef.io

Zde si vytvořte účet, pokud jej nemáte. Jakmile si vytvoříte účet, přihlaste se pomocí přihlašovacích údajů.

Takto vypadá Chef Server.

Pokud se přihlašujete poprvé, první věcí, kterou uděláte, je vytvoření organizace. Organizace je v zásadě skupina strojů, které budete spravovat pomocí serveru Chef Server.

Nejprve přejdu na kartu Správa. Tam jsem již vytvořil organizaci s názvem edu. Takže si musím stáhnout startovací sadu do své pracovní stanice. Tato startovací sada vám pomůže odeslat soubory z pracovní stanice na server šéfkuchaře. Klikněte na ikonu nastavení na pravé straně a klikněte na Starter Kit.

Kliknutím tam získáte možnost stáhnout si Starter Kit. Jednoduše na něj klikněte a stáhněte si zip soubor Starter Kit.

Přesuňte tento soubor do kořenového adresáře.Nyní tento zip soubor rozbalte pomocí příkazu unzip ve vašem terminálu. Všimnete si, že obsahuje adresář s názvem chef-repo.

Vykonat tento:

rozbalte kuchařský startér.zip

Nyní přesuňte tuto startovací sadu do adresáře kuchařek v adresáři chef-repo.

Vykonat tento:

mv startér / root / kuchař-repo / kuchařka

Kuchařské knihy kuchařů jsou k dispozici na Super trhu kuchařek, můžeme jít do supermarketu kuchařů. Stáhněte si požadované kuchařky z supermarket.chef.io . Stahuji jednu z kuchařské knihy a instaluji odtud Apache.

c vs c ++ vs java

Vykonat e t h je:

cd kuchař-repo nůž kuchařská stránka ke stažení learn_chef_httpd

Do kuchařské knihy Apache je stažena koule Tar. Nyní musíme extrahovat obsah z tohoto staženého souboru Tar. K tomu použiji příkaz tar.

tar -xvf learn_chef_httpd-0.2.0.tar.gz

V této kuchařce se automaticky vytvářejí všechny požadované soubory. Není třeba provádět žádné úpravy. Podívejme se na popis receptu ve složce mých receptů.

Provést t h je :

cd / root / chef-repo / learn_chef_httpd / recepty kočka default.rb

Teď nahraji tuto kuchařku na můj kuchařský server, protože pro mě vypadá perfektně.

Krok 8: Nahrajte kuchařku na server šéfkuchaře.

Abyste mohli nahrát Apache Cookbook, který jsem stáhl, nejprve přesuňte tento soubor learn_chef_httpd do složky Cookbooks v chef-repo. Poté změňte svůj adresář na kuchařské knihy.

Provést t h je :

mv / root / chef-repo / learn_chef_httpd / root / chef-repo / kuchařky

Nyní přejděte do tohoto adresáře kuchařských knih.

Proveďte toto:

CD kuchařské knihy

Nyní v tomto adresáři proveďte níže uvedený příkaz a nahrajte Apache Cookbook:

Exec ute t h je:

nahrání kuchařské knihy nůž learn_chef_httpd

Ověřte kuchařku z konzoly Chef Server Management. V sekci Zásady najdete kuchařku, kterou jste nahráli. Viz níže uvedený snímek obrazovky:

Nyní je naším posledním krokem přidání Chef Node. Nastavil jsem pracovní stanici, Chef Server a nyní potřebuji přidat své klienty na Chef Server pro automatizaci.

Krok 9: Přidání uzlu šéfkuchaře na server šéfkuchaře.

Pro demonstrační účely použiji jeden stroj CentOS jako Chef Node. K jednomu šéfkuchařskému serveru mohou být připojeny stovky uzlů. Barva terminálu mého zařízení Node se liší od pracovní stanice, takže budete moci rozlišovat mezi oběma.

Potřebuji pouze IP adresu mého uzlu, abych mohl provést níže uvedený příkaz v mém uzluje.

Exec u t je t h je:

ifconfig

Přidám svůj Chef Node na server spuštěním příkazu Knife Bootstrap, ve kterém uvedu IP adresu The Chef Node a jeho jméno. Proveďte zobrazený příkazv:

Exec ute t h je:

nůž bootstrap 192.168.56.102 --ssh-root uživatele --ssh-heslo edureka --node-name chefNode

Tento příkaz také inicializuje instalaci Chef-Client v uzlu Chef. Můžete to ověřit z rozhraní příkazového řádku na pracovní stanici pomocí příkazu nůž, jak je znázorněno nížev:

Exec ute t h je:

Seznam uzlů nožů

Můžete také ověřit z Chef Serveru. Přejděte na kartu uzly v konzole pro správu serveru, zde si všimnete, že je přítomný uzel, který jste přidali. Viz níže uvedený snímek obrazovky.

Krok 10: Správa seznamu spuštění uzlu

Podívejme se, jak můžeme přidat kuchařku do uzlu a spravovat její seznam spuštění ze serveru šéfkuchaře. Jak vidíte na následujícím obrázku, klikněte na kartu Akce a výběrem možnosti Upravit seznam spuštění spravujte seznam Spustit.

V části Dostupné recepty můžete vidět náš recept learn_chef_httpd, který můžete přetáhnout z dostupných balíčků do aktuálního seznamu spuštění a uložit seznam spuštění.

Nyní se přihlaste ke svému uzlu a stačí spustit chef-client k provedení Run List.

Exec ute t h je:

hlavní klient

Doufám, že se vám tento Chef Tutorial líbil a naučili jste se, jak lze Chef použít ke konfiguraci stovek uzlů. Šéfkuchař hraje zásadní roli v mnoha organizacích, aby dosáhl DevOps. Díky organizaci Chef organizace vydávají aplikace častěji a spolehlivějibsklenka.

Pokud jste našli tento blog na „ Výukový program pro kuchaře „Relevantní, podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě. Kurz Edureka DevOps Certification Training pomáhá studentům získat odborné znalosti v různých procesech a nástrojích DevOps, jako jsou Puppet, Chef, Jenkins, Nagios a GIT pro automatizaci více kroků v SDLC.