Учебники

SaltStack — Обзор

В этой главе мы изучим основы SaltStack. Возможности удаленного выполнения SaltStack позволяют администраторам запускать команды на разных машинах параллельно с гибкой системой таргетинга. Управление конфигурацией Salt устанавливает модель master-minion для быстрого, очень простого, гибкого и безопасного приведения компонентов инфраструктуры в соответствие с данной политикой.

Что такое SaltStack?

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

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

Модули SaltStack взаимодействуют с поддерживаемыми операционными системами minion. Salt Master по умолчанию работает в Linux, но любой операционной системой может быть миньон, и в настоящее время хорошо поддерживаются варианты Windows, VMware vSphere и BSD Unix. Мастер Соли и миньоны используют ключи для общения. Когда миньон подключается к мастеру в первый раз, он автоматически сохраняет ключи на мастере. SaltStack также предлагает Salt SSH , который обеспечивает «безагентное» управление системами.

Нужен для SaltStack

SaltStack создан для скорости и масштаба. Вот почему он используется для управления крупными инфраструктурами с десятками тысяч серверов в LinkedIn, WikiMedia и Google.

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

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

Особенности SaltStack

SaltStack — это программное обеспечение для управления конфигурацией с открытым исходным кодом и механизм удаленного выполнения. Соль — это инструмент командной строки. Хотя управление конфигурацией SaltStack написано на Python, оно не зависит от языка и просто. Платформа Salt использует push-модель для выполнения команд по протоколу SSH. Система конфигурации по умолчанию — шаблоны YAML и Jinja . Соль в основном конкурирует с Puppet , Chef и Ansible .

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

  • Отказоустойчивость. Соли миньоны могут подключаться к нескольким мастерам одновременно, настроив параметр конфигурации мастера в виде списка YAML всех доступных мастеров. Любой мастер может направлять команды в соляную инфраструктуру.

  • Гибкость — Весь подход управления Солт очень гибок. Он может быть реализован в соответствии с наиболее популярными моделями управления системами, такими как агент и сервер, только агент, только сервер или все вышеперечисленное в одной и той же среде.

  • Масштабируемое управление конфигурацией — SaltStack предназначен для обработки десяти тысяч миньонов на мастера.

  • Модель параллельного выполнения — Salt позволяет командам выполнять удаленные системы параллельно.

  • Python API — Salt предоставляет простой интерфейс программирования, и он был разработан, чтобы быть модульным и легко расширяемым, чтобы его можно было легко адаптировать к различным приложениям.

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

  • Language Agnostic — файлы конфигурации состояния соли, механизм шаблонов или тип файла поддерживает любой тип языка.

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

Гибкость — Весь подход управления Солт очень гибок. Он может быть реализован в соответствии с наиболее популярными моделями управления системами, такими как агент и сервер, только агент, только сервер или все вышеперечисленное в одной и той же среде.

Масштабируемое управление конфигурацией — SaltStack предназначен для обработки десяти тысяч миньонов на мастера.

Модель параллельного выполнения — Salt позволяет командам выполнять удаленные системы параллельно.

Python API — Salt предоставляет простой интерфейс программирования, и он был разработан, чтобы быть модульным и легко расширяемым, чтобы его можно было легко адаптировать к различным приложениям.

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

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

Преимущества SaltStack

Как простая, так и многофункциональная система, Salt предоставляет множество преимуществ, и их можно обобщить, как показано ниже:

  • Надежный — Salt — это мощная и надежная структура управления конфигурацией, которая работает с десятками тысяч систем.

  • Аутентификация — Salt управляет простыми парами ключей SSH для аутентификации.

  • Безопасный — Солт управляет безопасными данными, используя зашифрованный протокол.

  • Fast — Salt — это очень быстрая и легкая коммуникационная шина, которая обеспечивает основу для механизма удаленного выполнения.

  • Автоматизация виртуальных машин — для автоматизации используется функция облачного контроллера Salt Virt.

  • Инфраструктура как данные, а не код — Salt обеспечивает простое развертывание, управляемое моделью управление конфигурацией и среду выполнения команд.

Надежный — Salt — это мощная и надежная структура управления конфигурацией, которая работает с десятками тысяч систем.

Аутентификация — Salt управляет простыми парами ключей SSH для аутентификации.

Безопасный — Солт управляет безопасными данными, используя зашифрованный протокол.

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

Автоматизация виртуальных машин — для автоматизации используется функция облачного контроллера Salt Virt.

Инфраструктура как данные, а не код — Salt обеспечивает простое развертывание, управляемое моделью управление конфигурацией и среду выполнения команд.

Введение в ZeroMQ

Salt основан на библиотеке ZeroMQ и является встраиваемой сетевой библиотекой. Это легкая и быстрая библиотека сообщений. Базовая реализация на C / C ++ и нативные реализации для нескольких языков, включая Java и .Net .

ZeroMQ — это одноранговая обработка сообщений без посредников. ZeroMQ позволяет легко проектировать сложную систему связи.

ZeroMQ поставляется с пятью основными моделями:

  • Синхронный запрос / ответ — используется для отправки запроса и получения последующих ответов на каждый отправленный.

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

  • Публикация / подписка — используется для распространения данных из одного процесса (например, издателя) среди нескольких получателей (например, подписчиков).

  • Push / Pull — Используется для распределения данных по подключенным узлам.

  • Эксклюзивная пара — используется для соединения двух пиров вместе, образуя пару.

Синхронный запрос / ответ — используется для отправки запроса и получения последующих ответов на каждый отправленный.

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

Публикация / подписка — используется для распространения данных из одного процесса (например, издателя) среди нескольких получателей (например, подписчиков).

Push / Pull — Используется для распределения данных по подключенным узлам.

Эксклюзивная пара — используется для соединения двух пиров вместе, образуя пару.

ZeroMQ — это очень гибкий сетевой инструмент для обмена сообщениями между кластерами, облаком и другими мультисистемными средами. ZeroMQ — это транспортная библиотека по умолчанию, представленная в SaltStack.