Что такое автоматизация и управление конфигурацией с помощью 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 мы увидим в следующих статьях.