Урок за готвач - Преобразуване на инфраструктурата в код



Урок за готвачи е вторият блог от серията блогове за готвачи. Този блог обяснява с примери архитектурата на готвача и компонентите на готвача като готварски книги, рецепти и др.

Урок за готвач

Урок за готвачи е вторият блог от серията блогове за готвачи. В моето предишен блог , Обясних какво е Chef, Configuration Management и как Chef постига Configuration Management с помощта на случай на употреба на Gannett.

В този урок за готвачи ще бъдат разгледани следните теми:





Сигурен съм, че след като прочетох моя предишен блог трябва да сте любопитни да знаете как точно работи готвачът. Първият раздел на този блог за уроци за готвачи ще ви обясни подробно архитектурата на готвача, което ще изчисти всичките ви съмнения.



как да се справя с изскачащи прозорци в селен -

Урок за готвачи - Архитектура на готвачи

Както е показано на диаграмата по-долу, има три основни компонента на готвача:

  • Работна станция
  • Сървър
  • Възли

Шеф Архитектура - Урок за готвачи - Edureka

Урок за готвач - работна станция



Работната станция е мястото, от което са всички конфигурации на готвачауправлявана. Тази машина съхранява всички данни за конфигурацията, които по-късно могат да бъдат изпратени към централния сървър за готвачи. Тези конфигурации се тестват в работната станция, преди да се вкарат в Chef Server. Работната станция се състои от инструмент за команден ред, наречен Нож, който се използва за взаимодействие със сървъра за готвачи. Може да има множество работни станции, които заедно управляват централния сървър за готвачи.

Работните станции са отговорни за изпълнението на следните функции:

  • Писане на готварски книги и рецепти, които по-късно ще бъдат изпратени на централния сървър за готвачи
  • Управление на възли на централния сървър за готвачи

Сега нека разберем горепосочените точки един по един.

Писане на готварски книги и рецепти, които по-късно ще бъдат изпратени на централния сървър за готвачи

Рецепти: Рецептата е колекция от ресурси, която описва определена конфигурация или политика. Той описва всичко, което е необходимо за конфигуриране на част от системата. Потребителят пише Рецепти, които описват как Chef управлява приложения и помощни програми (като Apache HTTP Server, MySQL или Hadoop) и как те трябва да бъдат конфигурирани.

Тези рецепти описват поредица от ресурси, които трябва да бъдат в определено състояние, т.е.пакети, които трябва да бъдат инсталирани, услуги, които трябва да се изпълняват, или файлове, които трябва да бъдат написани.

По-късно в блога , Ще ви покажа как да напишете Рецепта за инсталиране на пакет Apache2 на Chef Nodes, като напишете рубинен код в Chef Workstation.

Готварски книги: Няколко рецепти могат да бъдат групирани заедно, за да образуват готварска книга. Готварска книга определя сценарий и съдържа всичко, което е необходимо за поддържане на този сценарий:

  • Рецепти, който определя ресурсите, които да се използват, и реда, в който трябва да бъдат приложени
  • Стойности на атрибутите
  • Файлови разпределения
  • Шаблони
  • Разширения към Chef, като библиотеки, дефиниции и персонализирани ресурси

Управление на възли на централния сървър за готвачи

Системата на работната станция ще разполага с необходимите помощни програми за команден ред, за да контролира и управлява всеки аспект на централния сървър за готвачи. Неща като добавяне на нов възел към централния сървър на готвачи, изтриване на възел от централния сървър на готвачи, модифициране на конфигурации на възли и т.н., могат да се управляват от самата работна станция.

Сега нека видим какви компоненти на Workstation са необходими за изпълнение на горните функции.

Работните станции имат два основни компонента:

Нож полезност: Този инструмент за команден ред може да се използва за комуникация с централния сървър за готвачи от работна станция. Добавянето, премахването, промяната на конфигурациите на възли в централен сървър за готвачи ще се извършва с помощта на тази помощна програма Knife. Използвайки помощната програма Knife, Cookbooks могат да бъдат качени на централен сървър за готвачи и роли, среда също може да се управлява. По принцип всеки аспект на централния сървър за готвачи може да се контролира от работната станция с помощта на помощната програма Knife.

Местно хранилище на готвачи: Това е мястото, където се съхранява всеки конфигурационен компонент на централния Chef Server. Това хранилище на Chef може да бъде синхронизирано с централния сървър на Chef (отново с помощта на самата помощна програма за ножове).

Урок за готвачи - сървър за готвачи

Chef сървърът действа като център за данни за конфигурация. Chef Server съхранява Cookbooks, политиките, които се прилагат към възлите, и метаданни, които описват всеки регистриран възел, който се управлява от Chef-Client.

Възлите използват Chef-Client, за да поискат от Chef Server подробности за конфигурацията, като например рецепти, шаблони и файлови дистрибуции. След това Chef-Client извършва възможно най-голяма част от работата по конфигурирането на самите възли (а не на Chef Server). Всеки възел има инсталиран софтуер на Chef Client, който ще изтегли конфигурацията от централния Chef Server, приложими за този възел. Този мащабируем подход разпределя усилията за конфигуриране в цялата организация.

Урок за шеф - готварски възли

Възлите могат да бъдат виртуален сървър, базиран в облак, или физически сървър във вашия собствен център за данни, който се управлява с помощта на централния сървър за готвачи. Основният компонент, който трябва да присъства на възела, е агент, който ще установи комуникация с централния сървър за готвачи. Това се нарича клиент на готвач.

Chef Client изпълнява следните функции:

  • Той е отговорен за взаимодействието с централния сървър за готвачи.
  • Той управлява първоначалната регистрация на възела към централния сървър за готвачи.
  • Той сваля книгите за готвене и ги прилага в Node, за да го конфигурира.
  • Периодично анкетиране на централния сървър за готвачи за извличане на нови конфигурационни елементи, ако има такива.

Щракнете тук, за да научите как да инсталирате Chef Server, Workstation и Node

Урок за готвач - Предимства на готвача:

Този урок за готвач ще бъде непълен, ако не включа основните предимства на готвача:

  • Можете да автоматизирате цяла инфраструктура с помощта на Chef. Всички задачи, които се извършват ръчно, вече могат да се изпълняват чрез инструмента Chef.
  • Можете да конфигурирате хиляди възли в рамките на минути с помощта на Chef.
  • Автоматизацията на готвачи работи с по-голямата част от публичните облачни предложения като .
  • Главният готвач не само ще автоматизира нещата, но и ще поддържа системите под постоянна проверка и ще потвърди, че системата всъщност е конфигурирана по начина, по който се изисква (Chef Agent / Client върши тази работа). Ако някой направи грешка, модифицирайки файл, готвачът ще го поправи.
  • Цяла инфраструктура може да бъде записана под формата на хранилище на готвач, което може да се използва като план за пресъздаване на инфраструктурата от нулата.

Надявам се, че досега сте се радвали на този урок за готвач, достатъчно с теоретичните постове! нека се позабавляваме с практически.

Урок за готвач | Първи стъпки с готвач | Едурека

Урок за готвач - Ръчно

Тук ще ви обясня как да създадете рецепта, готварска книга и шаблон в работна станция за готвачи. Също така ще ви обясня как да разположите Cookbook от работна станция до Chef-Client (Chef Node).

Използвам две виртуални изображения, една за Chef Workstation и друга за Chef Node. За Chef Server ще използвам хостваната версия на Chef (в облак). Можете да използвате и физическа машина за Chef Server.

Етап 1: Инсталирайте Chef DK (комплект за разработка) във вашата работна станция за готвачи.

Chef DK е пакет, който съдържа всички инструменти за разработка, от които ще се нуждаете, когато кодирате Chef. Ето връзката за изтегляне Готвач DK .

Тук изберете операционната система, която използвате. Използвам CentOS 6.8. Така че ще кликна върху Red Hat Enterprise Linux .

Копирайте връзката според версията на CentOS, която използвате. Използвам CentOS 6, както можете да видите, че съм подчертал в горната екранна снимка.

Отидете на терминала на вашата работна станция и изтеглете Chef DK, като използвате командата wget и поставете връзката.

Изпълнете това:

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

Пакетът вече е изтеглен. Време е да инсталирате този пакет с помощта на rpm.

Изпълнете това:

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

Chef DK вече е инсталиран на моята работна станция.

Стъпка 2: Създайте рецепта в работната станция

Нека започнем със създаването на рецепта в работната станция и да я тестваме локално, за да се уверим, че работи.Създайте папка с име chef-repo. Можем да създадем нашите рецепти в тази папка.

Изпълнете това:

mkdir chef-repo cd chef-repo

В тази директория chef-repo ще създам Рецепта на име edureka.rb. .rb е разширението, използвано за рубин. Ще използвам vim editor, можете да използвате всеки друг редактор, който искате, като gedit, emac, vi и т.н.

Изпълнете това:

vim edureka.rb

Тук добавете следното:

файл '/ etc / motd' съдържание 'Добре дошли в готвача' край

Този Recipe е дурека .rb създава файл с име / etc / motd със съдържание „Добре дошли в готвача“.

как да създам пакет в java -

Сега ще използвам този рецепт, за да проверя дали работи.

Изпълни това:

готвач-приложи edureka.rb

Така че има файл, създаден в готвача-репо, който има съдържание Добре дошли в готвача.

Стъпка 3: Модифициращ файл с рецепта за инсталиране на httpd пакет

Ще модифицирам Рецептата, за да инсталирам httpd пакет на моята работна станция и ще копирам файл index.html в основния документ по подразбиране, за да потвърдя инсталацията. Действието по подразбиране за ресурс на пакета е инсталация, поради което не е необходимо да посочвам това действие отделно.

Изпълни това:

vim edureka.rb

Тук добавете следното:

пакет 'httpd' услуга 'httpd' направи действие [: активиране,: старт] краен файл '/var/www/html/index.html' направи съдържание 'Добре дошли в Apache в Chef' край

Сега ще приложа тези конфигурации, като изпълня командата по-долу:

Изпълни това:

готвач-приложи edureka.rb

Изпълнението на командата ясно описва всеки екземпляр в Рецептата. Той инсталира пакета Apache, активира и стартира услугата httpd на работната станция. И той създава файл index.html в основния документ по подразбиране със съдържанието „Добре дошли в Apache в Chef“.

Сега потвърдете инсталирането на Apache2, като отворите вашия уеб браузър. Въведете вашия публичен IP адрес или името на вашия хост. В моя случай това е localhost.

Стъпка 4: Сега ще създадем първата си готварска книга.

Създайте директория, наречена готварски книги, и изпълнете командата по-долу, за да генерирате готварска книга.

Изпълни това:

mkdir готварски книги cd готварски книги готвач генерира готварска книга httpd_deploy

httpd_deploy е име, дадено на Cookbook. Можете да дадете всяко име, което искате.

Нека преминем към тази нова директория httpd_deploy.

Изпълни това:

cd httpd_deploy

Сега нека видим файловата структура на създадената Cookbook.

Изпълни това:

дърво

Стъпка 5: ° Сактивирайте файл с шаблони.

По-рано създадох файл с някакво съдържание, но това не може да се побере с моите структури за рецепти и готварски книги. Така че нека видим как можем да създадем шаблон за страница index.html.

Изпълни това:

готвач генерира шаблон httpd_deploy index.html

Сега, ако виждате моята файлова структура на Cookbook, има папка, създадена с шаблони за имена с файл index.html.erb. Ще редактирам този файл с шаблон на index.html.erb и ще добавя моята рецепта към него. Вижте примера по-долу:

Отидете в директорията по подразбиране

Изпълни това:

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

Тук редактирайте шаблона index.html.erb, като използвате всеки редактор, който ви харесва. Ще използвам vim editor.

Изпълни това:

vim index.html.erb

Сега добавете следното:

Добре дошли в разгръщането на готвач Apache

Стъпка 6: ° ССъздайте рецепта с този шаблон.

Отидете в директорията за рецепти.

Изпълнете t неговото:

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

Сега редактирайте файла default.rb, като използвате всеки редактор, който искате. Ще използвам vim editor.

Изпълни това:

vim по подразбиране.rb

Тук добавете следното:

пакет 'httpd' услуга 'httpd' направи действие [: активиране,: старт] краен шаблон '/var/www/html/index.html' направи източник 'index.html.erb' край

Сега ще се върна в папката си chef-repo и ще пусна / тествам рецептата си на работната си станция.

Изпълни това:

cd / root / chef-repo chef-client --local-mode --runlist 'рецепта [httpd_deploy]'

Според моята рецепта Apache е инсталиран на работната ми станция, услугата се стартира и активира при зареждане. Също така е създаден файл с шаблон в моя корен на документа по подразбиране.

След като тествах работната си станция. Време е да настроите Chef Server.

Стъпка 7: Настройка на сървър за готвачи

Ще използвам хостваната версия на Chef Server в облака, но можете да използвате и физическа машина. Този готвач-сървър присъства на manage.chef.io

Тук създайте акаунт, ако нямате такъв. След като създадете акаунт, влезте с идентификационните си данни за вход.

Ето как изглежда Chef Server.

Ако влизате за първи път, първото нещо, което ще правите, е да създадете организация. Организацията е основно група от машини, които ще управлявате с Chef Server.

Първо ще отида в раздела администрация. Там вече създадох организация, наречена edu. Затова трябва да изтегля стартовия комплект в работната си станция. Този стартов комплект ще ви помогне да прехвърлите файлове от работната станция към сървъра за готвачи. Щракнете върху иконата за настройки отдясно и щракнете върху Starter Kit.

Когато кликнете там, ще получите опция за изтегляне на Starter Kit. Просто кликнете върху него, за да изтеглите zip файла на Starter Kit.

Преместете този файл във вашата основна директория.Сега разархивирайте този zip файл, като използвате командата unzip във вашия терминал. Ще забележите, че включва директория, наречена chef-repo.

Изпълни това:

разархивирайте chef-starter.zip

Сега преместете този стартов комплект в директорията на готварските книги в директорията chef-repo.

Изпълни това:

mv стартер / корен / готвач-репо / готварска книга

Готварски книги за готвачи се предлагат в Cookbook Super Market, ние можем да отидем в Chef SuperMarket. Изтеглете необходимите готварски книги от supermarket.chef.io . Изтеглям една от Cookbook, за да инсталирам Apache от там.

Изпълни e t з е:

cd готвач-репо нож готварска книга за изтегляне на сайта learn_chef_httpd

Има изтеглена катранена топка за Apache Cookbook. Сега трябва да извлечем съдържанието от този изтеглен Tar файл. За това ще използвам командата tar.

tar -xvf learn_chef_httpd-0.2.0.tar.gz

Всички необходими файлове се създават автоматично в тази книга за готвене. Не е необходимо да се правят модификации. Нека проверим описанието на рецептата в моята папка с рецепти.

Изпълнете t з е :

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

Сега просто ще кача тази готварска книга на моя Chef Server, тъй като тя ми изглежда перфектно.

Стъпка 8: Качете готварска книга на сървъра за готвачи.

За да качите Apache Cookbook, който съм изтеглил, първо преместете този файл learn_chef_httpd в папката Cookbooks в chepo-repo. След това променете директорията си на готварски книги.

Изпълнете t з е :

конвертирате обект в масив php
mv / root / chef-repo / learn_chef_httpd / root / chef-repo / cookbooks

Сега преминете към тази директория с готварски книги.

Изпълнете това:

cd готварски книги

Сега в тази директория изпълнете командата по-долу, за да качите Apache Cookbooда се:

Изпълнение уте т з е:

нож готварска книга качване learn_chef_httpd

Проверете Cookbook от конзолата за управление на Chef Server. В раздела за правила ще намерите Качената книга, която сте качили. Вижте екранната снимка по-долу:

Сега последната ни стъпка е да добавим Chef Node. Настроих работна станция, Chef сървър и сега трябва да добавя клиентите си към Chef Server за автоматизация.

Стъпка 9: Добавяне на Chef Node към Chef Server.

За демонстрационни цели ще използвам една машина CentOS като Chef Node. Може да има стотици възли, свързани към един Chef сървър. Крайният цвят на моята Node машина е различен от работната станция, така че ще можете да правите разлика между двете.

Просто се нуждая от IP адреса на моя Node, за да изпълня командата по-долу в машината на Nodeе.

Изпълнение u т е т з е:

ifconfig

Ще добавя своя Chef Node към сървъра, като изпълня командата Knife Bootstrap, в която ще посоча IP адреса на Chef Node и неговото име. Изпълнете показаната команда beloв:

Изпълнение уте т з е:

нож bootstrap 192.168.56.102 --ssh-потребител корен --ssh-парола edureka --node-name chefNode

Тази команда също ще инициализира инсталирането на Chef-Client в Chef Node. Можете да го проверите от CLI на работната станция, като използвате командата нож, както е показано белв:

Изпълнение уте т з е:

Списък на ножовите възли

Можете също да проверите от сървъра за готвачи. Отидете в раздела възли във вашата конзола за управление на сървъра, тук ще забележите, че възелът, който сте добавили, е наличен. Вижте екранната снимка по-долу.

Стъпка 10: Управление на списъка за изпълнение на възли

Нека да видим как можем да добавим Cookbook към Node и да управляваме неговия списък Run от сървъра за готвачи. Както можете да видите на екранната снимка по-долу, щракнете върху раздела Действия и изберете опцията Редактиране на списъка за изпълнение, за да управлявате списъка за изпълнение.

В наличните рецепти можете да видите нашата рецепта learn_chef_httpd, можете да го плъзнете от наличните пакети в текущия списък за изпълнение и да запазите списъка за изпълнение.

Сега влезте във вашия Node и просто стартирайте chef-client, за да изпълните Run Lisт.

Изпълнение уте т з е:

главен клиент

Надявам се, че ви е харесал този урок за готвачи и сте научили как готвач може да се използва за конфигуриране на стотици възли. Готвачът играе жизненоважна роля в много организации за постигане на DevOps. С Chef организациите пускат приложения по-често и надежднобстъклена чаша.

Ако сте намерили този блог на „ Урок за готвач ”Подходящо, вижте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Курсът за обучение за сертифициране Edureka DevOps помага на обучаващите се да придобият опит в различни процеси и инструменти на DevOps като Puppet, Chef, Jenkins, Nagios и GIT за автоматизиране на множество стъпки в SDLC.