Написать нам
Категория: Тренды
17.07.2021

Chef vs Puppet vs Ansible vs Saltstack: Что Лучше на 2022 Год

Управление компьютерными сетями назвать «простым делом» не повернется язык ни у одного ИТ-специалиста. За последние годы наблюдается огромный скачок вперед в задачах всеобщей компьютеризации, что добавляет работы современным системным администраторам. Если ранее в основном использовались небольшие сети, то сегодня число машин и их цепи превышает сотни, а то и тысячи устройств.



Провести вручную их настройку, добавление или конфигурацию операционной системы не является возможным, либо задача вынуждает задействовать в процессе много специалистов. Последнее решение имеет свои негативные стороны, ведь все админы – люди и имеют особые мысли по поводу того, как лучше выполнить поручение руководства. Играет роль человеческий фактор, присущий каждому из нас. А если доверить задачу одному специалисту, нужно иметь в запасе очень много времени.



Данная ситуация породила решение автоматизировать указанный процесс. Сегодня активно используется специализированное ПО, помогающее в автоматическом режиме производить настройки ОС, чтобы сеть корректно функционировала. Осуществляется задача при наличии удаленного контакта. Одним из требований для этого является кроссплатформенность, ведь в рамках единой сети могут быть использованы разные ОС Linux, FreeBSD и Windows. В этом случае эффективным решением будет использовать специальный инструмент сетевого администратора, который поможет управлять конфигурацией ОС внутри единой сети.



Инструменты для управления в единой сети



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



Chef vs Puppet vs Ansible vs Saltstack: что это такое и с чем его «едят»?



Каждая из программ предназначается для управления конфигурацией ОС внутри одной сети. Представлены клиент-серверной архитектурой. Администратор, который находится за сервером, получает возможность отправлять на периферийные машины данные конфигураций. На устройствах обязательно должна быть установлена клиентская часть. Система осуществляет свою деятельность автоматизировано, конфигурируя, полагаясь на те настройки, которые доставил сервер.



Эти программные разработки применяются для администрирования нескольких VPS, управления парком серверов, настройки их серверов с «0», подключения дополнительных НОД в кластер и прочих важных задач, возложенных на плечи сетевого админа.



Необходимость использования систем автоматизации сети в 2022 году



Chef vs Puppet vs Ansible vs Saltstack созданы для управления крупными инфраструктурами, в которые входят 10 000 серверов в Google, LinkedIn и WikiMedia.



Только представьте, что вы обладаете несколькими серверами и должны что-то с ними сделать. Алгоритм действий в такой ситуации предусматривает вход на каждый сервер и выполнение действий по очереди. Если встанет более сложная задача, например, установка ПО, значит нужно будет настроить его, полагаясь на определенные характеристики. Задача усложняется, но еще тяжелее она будет, если в вашем распоряжении 10, а то и 100 серверов.



Теперь нужно заходить по очереди в каждый из них – 1, 2, 3… А до 100 еще далеко. Выполнив команду по установке, переходим к редактированию файлов с настройками конфигурации, и процесс повторяется на каждой машине. Утомительно… Согласны?!



Чтобы избежать этих трудностей, можно одновременно обновить серверы, воспользовавшись одним из программных продуктов. Давайте же выбирать, каким из них лучше воспользоваться в 2022 году – Chef vs Puppet vs Ansible vs Saltstack. Для этого проведем обзор каждой системы управления конфигурациями отдельно.



Chef



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



Реализована программа на клиентской части Ruby. Чтобы управлять Chef, нужно иметь минимальные базовые знания данного языка программирования, а на центральном сервере установить соответствующую программную среду.



Администратор разворачивает Chef на рабочей станции, создавая шеф-сервер, где установлена основная управляющая часть ПО. Он пишет файл с конфигурацией – Receipt, чтобы настроить нужное направление поведения сети на всех единицах Nodes. Эти данные попадают в хранилище, куда также отправляются файлы ПО, шаблоны будущих характеристик конфигураций. Система позволяет записать в Cookbook сразу несколько Receipt. Это большой плюс, ведь бывают разные версии ОС и ПО на узлах. Да и хранилищ может быть больше, чем одно, что позволяет фиксировать разные сценарии поведения сети.



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

Схема работы







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



Chef может работать в 2-х режимах:



Чаще всего система используется для ПК с ОС Linux, но также хорошо зарекомендовала себя с последними версиями Windows.



Puppet



Это один из самых востребованных брендов на рынке CM, который активно развивается с 2005 года. Используют систему такие именитые корпорации, как PayPal, Google, Reddit, Dell, Oracle и Стэндфордский университет. Это уже говорит о том, что к Puppet стоит присмотреться.



Отличается система возможностью эффективного использования не только на ОС Linux, Windows, как в случае с ранее рассмотренным приложением Chef, но и Mac OS X, Unix.



Puppet имеет открытый исходный код Ruby. Есть профессиональная поддержка и корпоративная версия ПО коммерческого характера.



Чтобы использовать Puppet в деле, нужно установить серверную часть на программной среде Ruby. Это то самое место, где будут храниться все файлы с настройками конфигурации системы. Их разработчик назвал «Манифесты». Во время функционирования сервер примет запросы с клиентских машин. В автоматическом процессе на них будут отправлены файлы с обновленной версией конфигурации операционной системы. Это позволит продолжить эффективную и бесперебойную работу в сети всех устройств.



Важным требованием для использования Puppet является установка на ПК заказчика соответствующего ПО, имеется в виду клиентская часть. Данные пакеты входят в ОС. Админ быстро сможет развернуть компьютерную сеть, чтобы продолжить выполнять задачи. Если установочные пакеты не найдены, нужно обратиться за помощью на официальный сайт Puppet. Разработчик предоставляет гостям ресурса возможность самостоятельно скачать нужную сборку в случае необходимости.

Схема работы







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



На самом деле, если задействовать в работу правильный манифест предыдущей версии сборки, это позволит оперативно восстановить цепь машин  и привести ее в действие.



Минусы у системы есть. Puppet – еще одна жертва собственной славы. Пользователи сообщают об ошибках, которые разработчик не спешит исправлять. Некоторые запросы и вовсе игнорируются. Также встречается негодование среди клиентов бренда относительно его настойчивых намеков на приобретение коммерческой версии приложения.



Ansible



Бренд Ansible обошел вышеупомянутого гиганта ПО Puppet, прибрав к своим влиятельным рукам большую долю рынка – 26,5%, у Puppet – всего 12%. Речь идет об индустрии систем управления конфигурациями.



Это продукт с открытым исходным кодом Python, выпущенный в 2012 году. Поддерживается разработчиком AnsibleWorks. Python дает системе преимущество, ведь этот язык позволяет работать приложению на высокой скорости, он встроен в Unix и Linux.



Основное достоинство Ansible заключается в легком и быстром развертывании, ему даже не нужно использовать агенты для связи с мастер-клиентом, функции осуществляются с помощью SSH. Если есть конфигурации, которые не поддерживают этот корневой профиль, система выполняет «sudo», как root.



Запустить Ansible для простых задач можно из CLI, не применяя конфигурационные файлы. Речь в данном случае идет о проверке работы службы, перезагрузке и запуске обновлений. Если это более сложные цели – обработка конфигурации Ansible осуществляется синтаксисом YAML в файлах «playbooks».

Схема работы







Задать команды системе можно на разных языках программирования. Самыми распространенными являются универсальные модули JSON. Это своеобразное преимущество, ведь в других приложениях столь широкого выбора в языках нет.



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



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



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



SaltStack



Программное обеспечение имеет открытый исходный код и написано на языке Python, в чем имеет сходство с Ansible. Предусматривает механизм удаленной работы. Для выполнения команд используется push-модель и протокол SSH.



Отличается выполнением поставленных задач в высокой скорости, чем затмевает даже вышерассмотренные системы. Можно управлять конфигурацией, инфраструктурой и осуществлять оркестровку. Известно приложение с 2011 года.



Создано с архитектурой master-slave. Сетевой админ в приложении именуется Salt Master – он же основной демон, который управляет всеми Salt Minions. Он отдает одному из них или нескольким Миньонам команды, которые должны их беспрекословно выполнять. Полученные данные об изменениях доставляются Мастеру. Осуществляется связь между основными действующими сторонами с помощью ключей сообщений ZeroMQ. Подключаясь к Мастеру в первый раз, Миньон автоматически сохраняет ключ на сервере. Также есть формат Salt SSH - «безагентное» управление.
Написать нам
Имя*:
Email*:
Сообщение: