Поиск по сайту:

Что такое автоматизация и управление конфигурацией с помощью CHEF – Часть 1


Давайте рассмотрим простой сценарий: у вас есть 10 серверов Redhat, на всех серверах вам необходимо создать пользователя «tecmint». Прямой подход: вам необходимо войти на каждый сервер и создать пользователя с помощью команды useradd. Когда серверов 100 или 1000, вход на все серверы по одному практически невозможен.

Здесь первое, что приходит на ум в таких случаях — написать скрипт и позволить ему выполняться на серверах, это проверенный подход. У сценариев есть свои недостатки, хотя они широко используются в организациях, их сложно поддерживать, если владелец сценария покидает организацию.

Скрипт не будет работать в гетерогенной среде. Сценарий является императивным методом выполнения задачи, когда вам нужно написать длинный код для простой задачи и т. д., эта ситуация требует от нас поиска инструментов автоматизации и управления конфигурацией, таких как Шеф-повар.

В этой серии статей о Chef мы рассмотрим процедуры установки и настройки инструмента Chef Automation в частях 1–3 и рассмотрим следующие темы.

В этом руководстве представлена отправная точка о том, как работает Chef, автоматизация, управление конфигурацией, архитектура и компоненты Chef.

1. Управление конфигурацией

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

Существует две модели инструментов управления конфигурацией – на основе PUSH и на основе PULL. В режиме на основе PUSH главный сервер передает код конфигурации на серверы, при этом отдельные серверы на основе на основе PULL связываются с главным сервером для получения кода конфигурации. PUPPET и CHEF — широко используемые модели на основе PULL, ANSIBLE — популярная модель на основе PUSH. В этой статье мы поговорим о CHEF.

2. Что такое шеф-повар?

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

  • Он создан в 2008 году как OPSCODE, позже переименован в CHEF (инструмент Chef Automation).
  • Это инструмент автоматизации на основе Ruby, используемый для управления конфигурацией, автоматизации и оркестрации всей инфраструктуры организации.
  • Это проект с открытым исходным кодом, который поставляется с двумя моделями развертывания: серверным клиентом и автономным.
  • Chef поддерживает различные операционные системы, такие как Ubuntu, Redhat/CentOS, Fedora, macOS, Windows, AIX и т. д.
  • Chef является декларативным и намного проще, чем родные языки сценариев.
  • Он обеспечивает непрерывное развертывание, позволяющее компании быть в курсе требований рынка.
  • Основная ответственность шеф-повара — поддержание заданного состояния конфигурации.
  • Он имеет собственный декларативный язык, позволяющий легко управлять 10 и 1000 узлами.
  • Chef адаптируется к облаку, легко интегрируется с Infrastructure on Cloud.
  • Chef прост в освоении и является мощным, поддерживаемым сообществом инструментом DevOps.

3. Архитектура шеф-повара

Архитектура Chef разделена на три основных раздела.

  • Chef WorkStation: локальная платформа разработки, позволяющая пользователям Chef создавать, тестировать и применять конфигурации. Это может быть ваш локальный настольный компьютер или ноутбук с установленным Chef DK (Development Kit). Его можно использовать в качестве среды разработки/тестирования перед запуском в производство.
  • Chef Server: это сервер, на котором установлено и настроено программное обеспечение Chef-Server. Он отвечает за управление кодом Chef и доступ к коду конфигурации с рабочей станции Chef. Сервер шеф-повара должен быть машиной с Linux, он не будет поддерживать никакую другую операционную систему.
  • Клиенты Chef: существуют серверы, которые связываются с сервером Chef для получения деталей конфигурации, таких как код Chef и другие зависимые файлы в двоичных файлах. Он извлекает код с сервера Chef и развертывает его локально.

4. Компоненты шеф-повара

Ниже приведены ключевые компоненты Chef.

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

5. Модель развертывания шеф-повара

Существует две модели развертывания Chef.

  • Клиент сервера – используется для производственного развертывания.
  • Chef Zero – используется для разработки, тестирования и проверки подлинности.

6. Как работает шеф-повар? Инфраструктура как код

Инфраструктура как код — это управление ИТ-инфраструктурой, позволяющее нам автоматически выполнять различные установки/развертывания и управление конфигурацией. Здесь все настройки, установки написаны в виде кода.

  • Клиент/узел Chef выполнит регистрацию и аутентификацию на сервере Chef.
  • Клиент/узел Chef будет периодически проверять сервер Chef. Процесс аутентификации выполняется каждый раз, когда шеф-клиент хочет получить доступ к данным, хранящимся на шеф-сервере.
  • Ohai — это инструмент, который будет запускаться клиентом Chef для определения состояния системы. Он определит атрибуты (ОС, память, диск, ЦП, ядро и т. д.) узла и предоставит эти атрибуты шеф-повару-клиенту. Ohai является частью установки Chef Client.
  • Если есть какие-либо изменения в настройках кулинарной книги или конфигурации, они будут отправлены в Chef-Client и будут обновлены/установлены.
  • Книги рецептов и настройки будут обновляться на сервере Chef с помощью Chef Workstation с помощью инструмента командной строки Knife. Рабочая станция передает все политики на сервер Chef с помощью Knife.
  • Поскольку каждый клиент/узел будет периодически проверяться на сервере Chef, конфигурации будут применяться индивидуально в соответствии с ролью сервера. Например: в узлах Chef некоторые узлы будут серверами баз данных, некоторые узлы будут серверами шлюзов и т. д.
Заключение

В этой статье мы рассмотрели основные концепции инструмента управления конфигурациями и автоматизации Chef. Пошаговый процесс установки Chef мы увидим в следующих статьях.