Учебное пособие для шеф-повара - преобразование инфраструктуры в код



Chef Tutorial - второй блог из серии блогов Chef. В этом блоге на примерах объясняется архитектура Chef и такие компоненты Chef, как Cookbooks, Recipes и т. Д.

Учебник повара

Chef Tutorial - второй блог из серии блогов Chef. В моем предыдущий блог , Я объяснил, что такое Chef, Configuration Management и как Chef обеспечивает управление конфигурацией с помощью варианта использования Gannett.

В этом руководстве для шеф-повара будут рассмотрены следующие темы:





Я уверен после прочтения моих предыдущий блог вам должно быть интересно узнать, как именно работает Chef. Первый раздел этого блога Chef Tutorial подробно объяснит вам архитектуру Chef, что развеет все ваши сомнения.



Учебник для шеф-повара - Архитектура шеф-повара

Как показано на схеме ниже, есть три основных компонента Chef:

  • Рабочая станция
  • Сервер
  • Узлы

Архитектура шеф-повара - Учебник шеф-повара - Edureka

Учебник для шеф-повара - Рабочая станция



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

Рабочие станции отвечают за выполнение следующих функций:

  • Написание поваренных книг и рецептов, которые позже будут отправлены на центральный сервер Chef.
  • Управление узлами на центральном Chef Server

Теперь давайте разберемся в вышеупомянутых пунктах один за другим.

Написание поваренных книг и рецептов, которые позже будут отправлены на центральный сервер Chef.

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

Эти рецепты описывают серию ресурсов, которые должны находиться в определенном состоянии, т.е.пакеты, которые должны быть установлены, службы, которые должны быть запущены, или файлы, которые должны быть записаны.

Позже в блоге , Я покажу вам, как написать рецепт для установки пакета Apache2 на Chef Nodes, написав рубиновый код в Chef Workstation.

Поваренные книги: Несколько рецептов можно сгруппировать в Поваренную книгу. Поваренная книга определяет сценарий и содержит все, что требуется для поддержки этого сценария:

  • Рецепты, в которых указаны используемые ресурсы и порядок, в котором они должны применяться.
  • Значения атрибутов
  • Распространение файлов
  • Шаблоны
  • Расширения Chef, такие как библиотеки, определения и пользовательские ресурсы

Управление узлами на центральном Chef Server

Система Workstation будет иметь необходимые утилиты командной строки для контроля и управления всеми аспектами центрального Chef Server. Такие вещи, как добавление нового узла к центральному серверу Chef, удаление узла с центрального сервера Chef, изменение конфигураций узла и т. Д., Могут управляться с самой рабочей станции.

Теперь давайте посмотрим, какие компоненты Workstation необходимы для выполнения вышеуказанных функций.

Рабочие станции состоят из двух основных компонентов:

Утилита ножа: Этот инструмент командной строки можно использовать для связи с центральным Chef Server с рабочей станции. Добавление, удаление, изменение конфигураций узлов на центральном Chef Server будет выполняться с помощью этой утилиты Knife. С помощью утилиты Knife поваренные книги можно загружать на центральный сервер Chef и ролей, также можно управлять средами. По сути, всеми аспектами центрального Chef Server можно управлять с рабочей станции с помощью утилиты Knife.

Локальный репозиторий Chef: Это место, где хранятся все компоненты конфигурации центрального Chef Server. Этот репозиторий Chef можно синхронизировать с центральным сервером Chef (опять же с помощью самой утилиты knife).

Учебник для шеф-повара - сервер шеф-повара

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

Узлы используют Chef-Client, чтобы запрашивать у Chef Server детали конфигурации, такие как рецепты, шаблоны и распределения файлов. Затем Chef-Client выполняет как можно большую часть работы по настройке на самих узлах (а не на Chef Server). На каждом узле установлено программное обеспечение Chef Client, которое загружает конфигурацию с центрального Chef Server, применимую к этому узлу. Этот масштабируемый подход распределяет усилия по настройке по всей организации.

Учебник для шеф-повара - Узлы для повара

Узлы могут быть виртуальным сервером на основе облака или физическим сервером в вашем собственном центре обработки данных, который управляется с помощью центрального Chef Server. Главный компонент, который должен присутствовать на узле, - это агент, который будет устанавливать связь с центральным Chef Server. Это называется Chef Client.

Chef Client выполняет следующие функции:

  • Он отвечает за взаимодействие с центральным Chef Server.
  • Он управляет начальной регистрацией узла на центральном Chef Server.
  • Он извлекает кулинарные книги и применяет их к узлу для его настройки.
  • Периодический опрос центрального Chef Server для получения новых элементов конфигурации, если таковые имеются.

Щелкните здесь, чтобы узнать, как установить Chef Server, Workstation и Node

Учебник для шеф-повара - Преимущества Chef:

Это руководство будет неполным, если я не включу основные преимущества Chef:

  • Вы можете автоматизировать всю инфраструктуру с помощью Chef. Все задачи, которые выполнялись вручную, теперь можно выполнять с помощью инструмента Chef.
  • С помощью Chef вы можете настроить тысячи узлов за считанные минуты.
  • Автоматизация Chef работает с большинством предложений общедоступных облаков, таких как .
  • Chef не только автоматизирует процессы, но и постоянно проверяет системы и подтверждает, что система действительно настроена так, как это требуется (Chef Agent / Client выполняет эту работу). Если кто-то допустит ошибку, изменив файл, Chef исправит ее.
  • Вся инфраструктура может быть записана в виде репозитория Chef, который можно использовать как образец для воссоздания инфраструктуры с нуля.

Надеюсь, вам до сих пор понравился этот урок от Chef, хватит теоретических постов! давайте повеселимся на практике.

Учебник для шеф-повара | Начало работы с шеф-поваром | Эдурека

Учебник для шеф-повара - практический

Здесь я объясню вам, как создать рецепт, поваренную книгу и шаблон в Chef Workstation. Я также объясню вам, как развернуть Cookbook с рабочей станции на Chef-Client (Chef Node).

Я использую два виртуальных образа: один для Chef Workstation, а другой - для Chef Node. Для Chef Server я буду использовать размещенную версию Chef (в облаке). Вы также можете использовать физический компьютер для Chef Server.

Шаг 1: Установите Chef DK (Development Kit) на вашу рабочую станцию ​​Chef.

Chef DK - это пакет, который содержит все инструменты разработки, которые вам понадобятся при написании кода Chef. Вот ссылка для скачивания Шеф-повар ДК .

Здесь выберите операционную систему, которую вы используете. Я использую 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 - это расширение, используемое для ruby. Я буду использовать редактор vim, вы можете использовать любой другой редактор, какой захотите, например gedit, emac, vi и т. Д.

Выполните это:

vim edureka.rb

Сюда добавьте следующее:

файл '/ etc / motd' content 'Welcome to Chef' конец

Этот Recipe является Дурека .rb создает файл с именем / etc / motd с содержимым «Добро пожаловать в Chef».

Теперь я воспользуюсь этим рецептом, чтобы проверить, работает ли он.

Выполнить этот:

повар-применить edureka.rb

Итак, в репозитории шеф-поваров создан файл с содержимым Добро пожаловать в Chef.

Шаг 3: Mодификация файла рецепта для установки пакета httpd

Я изменю рецепт для установки пакета httpd на мою рабочую станцию ​​и скопирую файл index.html в корневой каталог документа по умолчанию, чтобы подтвердить установку. Действие по умолчанию для ресурса пакета - установка, поэтому мне не нужно указывать это действие отдельно.

Выполнить этот:

vim edureka.rb

Сюда добавьте следующее:

пакет 'httpd' service 'httpd' do action [: enable,: start] end file '/var/www/html/index.html' do content 'Добро пожаловать в Apache in Chef' конец

Теперь я применю эти конфигурации, выполнив следующую команду:

Выполнить этот:

повар-применить edureka.rb

Выполнение команды четко описывает каждый экземпляр в рецепте. Он устанавливает пакет Apache, включает и запускает службу httpd на рабочей станции. И он создает файл index.html в корневом каталоге документа по умолчанию с содержанием «Добро пожаловать в Apache in Chef».

Теперь подтвердите установку Apache2, открыв свой веб-браузер. Введите свой общедоступный IP-адрес или имя вашего хоста. В моем случае это localhost.

Шаг 4: Теперь мы создадим нашу первую поваренную книгу.

тип преобразования в информатике

Создайте каталог с названием Cookbooks и выполните следующую команду, чтобы создать Cookbook.

Выполнить этот:

mkdir cookbooks cd cookbooks шеф-повар создает кулинарную книгу httpd_deploy

httpd_deploy - это имя, данное Поваренной книге. Вы можете дать любое имя, какое захотите.

Давайте перейдем в этот новый каталог httpd_deploy.

Выполнить этот:

cd httpd_deploy

Теперь давайте посмотрим на файловую структуру созданной Cookbook.

Выполнить этот:

дерево

Шаг 5: Cсоздать файл шаблона.

Раньше я создал файл с некоторым содержанием, но оно не может соответствовать моим структурам Рецептов и Поваренной книги. Итак, давайте посмотрим, как мы можем создать шаблон для страницы index.html.

Выполнить этот:

шеф-повар создать шаблон httpd_deploy index.html

Теперь, если вы видите мою файловую структуру Cookbook, это папка, созданная с шаблонами имен с файлом index.html.erb. Я отредактирую этот файл шаблона index.html.erb и добавлю в него свой Рецепт. См. Пример ниже:

Перейти в каталог по умолчанию

Выполнить этот:

компакт-диск / корень / шеф-репо / кулинарная книга / httpd_deploy / templates / по умолчанию

Здесь отредактируйте шаблон index.html.erb с помощью любого удобного вам редактора. Я буду использовать редактор vim.

Выполнить этот:

vim index.html.erb

Теперь добавьте следующее:

Добро пожаловать в Chef Apache Deployment

Шаг 6: Cсоздать рецепт с этим шаблоном.

Перейдите в каталог рецептов.

Выполнить t его:

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

Теперь отредактируйте файл default.rb с помощью любого редактора, который вам нужен. Я буду использовать редактор vim.

Выполнить этот:

vim default.rb

Сюда добавьте следующее:

пакет 'httpd' service 'httpd' do action [: enable,: start] end template '/var/www/html/index.html' do source 'index.html.erb' end

Теперь я вернусь в свою папку с репозиторием и запустим / протестирую свой рецепт на моей Рабочей станции.

Выполнить этот:

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

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

Теперь, когда я протестировал свою рабочую станцию. Пришло время настроить Chef Server.

Шаг 7: Установить Chef Server

Я буду использовать размещенную версию Chef Server в облаке, но вы также можете использовать физический компьютер. Этот Chef-сервер присутствует на manage.chef.io

Здесь создайте аккаунт, если у вас его нет. После того, как вы создали учетную запись, войдите в систему, используя свои учетные данные.

Так выглядит Chef Server.

разница между броском и броском

Если вы входите в систему впервые, первое, что вам нужно сделать, это создать организацию. Организация - это в основном группа машин, которыми вы будете управлять с помощью Chef Server.

Сначала я перейду на вкладку администрирования. Там я уже создал организацию под названием edu. Поэтому мне нужно загрузить стартовый комплект на свою рабочую станцию. Этот стартовый комплект поможет вам пересылать файлы с рабочей станции на Chef Server. Щелкните значок настроек справа и выберите Starter Kit.

Когда вы щелкнете там, вы получите возможность загрузить Starter Kit. Просто щелкните по нему, чтобы загрузить zip-файл Starter Kit.

Переместите этот файл в свой корневой каталог.Теперь распакуйте этот zip-файл, используя команду unzip в вашем терминале. Вы заметите, что он включает каталог под названием chef-repo.

Выполнить этот:

разархивировать chef-starter.zip

Теперь переместите этот стартовый набор в каталог рецептов в каталоге chef-repo.

Выполнить этот:

mv starter / root / chef-repo / кулинарная книга

Поваренные книги от шеф-повара доступны в Супермаркете поваренных книг, мы можем пойти в Супермаркет от шеф-поваров. Загрузите необходимые кулинарные книги из supermarket.chef.io . Я загружаю одну из Cookbook, чтобы установить оттуда Apache.

Выполнить е т час является:

cd chef-repo нож сайт поваренной книги скачать learn_chef_httpd

Для Apache Cookbook загружен Tar-шар. Теперь нам нужно извлечь содержимое из этого загруженного файла 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: Загрузите Cookbook на сервер Chef.

Чтобы загрузить загруженную мной кулинарную книгу Apache, сначала переместите этот файл learn_chef_httpd в папку Cookbooks в репозитории chef-repo. Затем смените каталог на кулинарные книги.

Выполнить t час является :

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

Теперь перейдите в этот каталог кулинарных книг.

Выполните это:

cd кулинарные книги

Теперь в этом каталоге выполните команду ниже, чтобы загрузить Apache Cookboo.кому:

Exec уте т час является:

нож поваренная книга загрузить learn_chef_httpd

Проверьте Cookbook в консоли управления Chef Server. В разделе политики вы найдете загруженную вами Кулинарную книгу. См. Снимок экрана ниже:

Теперь наш последний шаг - добавить Chef Node. Я установил рабочую станцию, сервер Chef, и теперь мне нужно добавить своих клиентов на сервер Chef для автоматизации.

Шаг 9: Добавление узла Chef на сервер Chef.

В демонстрационных целях я буду использовать одну машину CentOS в качестве Chef Node. К одному Chef Server могут быть подключены сотни узлов. Цвет терминала моей машины узла отличается от цвета рабочей станции, так что вы сможете различать оба цвета.

Мне просто нужен IP-адрес моего узла, для этого я выполню следующую команду в своей машине узлаявляется.

Exec ты т является т час является:

ifconfig

Я добавлю свой Chef Node на сервер, выполнив команду Knife Bootstrap, в которой я укажу IP-адрес The Chef Node и его имя. Выполните команду, показанную нижев:

Exec уте т час является:

нож начальной загрузки 192.168.56.102 --ssh-user root --ssh-password edureka --node-name chefNode

Эта команда также инициализирует установку Chef-Client в Chef Node. Вы можете проверить это из интерфейса командной строки на рабочей станции, используя команду ножа, как показано ниже.в:

Exec уте т час является:

Список узлов ножей

Вы также можете проверить это с Chef Server. Перейдите на вкладку узлов в консоли управления сервером, здесь вы заметите, что добавленный вами узел присутствует. См. Снимок экрана ниже.

Шаг 10: Управление списком выполнения узлов

Давайте посмотрим, как мы можем добавить Cookbook в узел и управлять его списком выполнения с сервера Chef. Как вы можете видеть на снимке экрана ниже, щелкните вкладку Действия и выберите параметр «Редактировать список выполнения» для управления списком выполнения.

В Доступных рецептах вы можете увидеть наш рецепт learn_chef_httpd, вы можете перетащить его из доступных пакетов в текущий список выполнения и сохранить список выполнения.

Теперь войдите в свой узел и просто запустите chef-client для выполнения Run Lis.т.

Exec уте т час является:

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

Надеюсь, вам понравился этот учебник Chef и вы узнали, как Chef можно использовать для настройки сотен узлов. Chef играет жизненно важную роль во многих организациях в достижении DevOps. С помощью Chef организации чаще выпускают приложения и полагаются на них.бстекло.

Если вы нашли этот блог на « Учебник повара ' соответствующие, проверить от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Курс Edureka DevOps Certification Training помогает учащимся получить опыт работы с различными процессами и инструментами DevOps, такими как Puppet, Chef, Jenkins, Nagios и GIT, для автоматизации нескольких шагов в SDLC.