SaltStack

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
SaltStack
Тип

Управление конфигурацией, системное администрирование

Написана на

Python

Операционная система

кроссплатформенное программное обеспечение

Лицензия

лицензия Apache

Сайт

saltstack.org

SaltStack — система управления конфигурациями и удалённого выполнения операций. Является программным обеспечением с открытым исходным кодом, написанным на Python. Проект начат в 2011 году Томасом Хатчем (Thomas Hatch)[1]. Поддерживает подход IaaS для развёртывания и управления облачными вычислениями[2].

Аналог Puppet, Chef и Ansible.

Архитектура[править | править вики-текст]

Двумя главными компонентами SaltStack являются Salt Master («мастер») и Salt Minion («ставленник», «приближённый», «миньон»). Мастер является центральной службой, к которой подключаются «ставленники» для получения конфигурации. Две основных идеи SaltStack: удалённое выполнение операций (remote execution) и управление конфигурациями. Удалённое выполнение функций Python является основой для построения повторяемой и управляемой конфигурации машин, с установленными на них «ставленниками»[3].

Мастер и «ставленники» общаются через промежуточное программное обеспечение, ориентированное на обработку сообщений: мастер запускает сообщения в очередь, из которой их получают «ставленники». Для обратной связи используется другая очередь. Первоначально для обмена сообщениями использовался ZeroMQ, но кластеры обслуживаемых серверов подчас имеют более десяти тысяч машин, поэтому на смену ZeroMQ был задуман основанный на UDP RAET (англ. Reliable Asynchronous Event Transport — «надёжный асинхронный протокол для транспорта событий»)[4].

В 2014 году в состав Salt был включён Salt Cloud, добавляющий в SaltStack уровень абстракции для работы с различными поставщиками облачных платформ[5].

Команды[править | править вики-текст]

Команда salt для запуска удалённого выполнения принимает следующие основные параметры[6]:

Состояния[править | править вики-текст]

SaltStack использует модули состояния (States) для описания требуемых состояний хостов-«ставленников». Состояния системы записываются в виде файлов с расширением .sls в синтаксисе YAML, например:[7]

 openssh-client:
   pkg.installed

Модули состояния отличаются от исполняемых модулей тем, что описывают требуемые состояния и их работа заключается в достижении описанного состояния. Исполняемые же модули выполняют заложенные в них действия каждый раз[7].

Описания состояний могут быть расширены использованием языка шаблонов Jinja2, а конфиденциальные данные конкретных «ставленников» могут быть защищены (от других «ставленников») подсистемой Pillar[8].

Примечания[править | править вики-текст]

  1. Learning SaltStack, 2015, Preface.
  2. Review: Puppet vs. Chef vs. Ansible vs. Salt (21 ноября 2013).
  3. Learning SaltStack, 2015, Introducing Salt.
  4. Hall, 2015, Chapter 7. Understanding the RAET Protocol.
  5. Learning SaltStack, 2015, Chapter 7. Using Salt Cloud to Manage Virtual Minions.
  6. Learning SaltStack, 2015, The structure of a remote execution command.
  7. 1 2 Learning SaltStack, 2015, Chapter 4. Defining the State of Your Infrastructure.
  8. Learning SaltStack, 2015, Chapter 5. Expanding Our States with Jinja2 and Pillar.

Литература[править | править вики-текст]

  • Colton Myers. Learning SaltStack. — Packt Publishing, 2015. — 174 p. — ISBN 978-1-78439-901-6.
  • Craig Sebenik, Thomas Hatch. Salt Essentials. — O'Reilly Media, Inc., 2015. — 250 с. — ISBN 978-1-4919-0063-5.
  • Joseph Hall. Mastering SaltStack. — Packt Publishing, 2015. — 306 с. — ISBN 978-1-78528-838-8.

Ссылки[править | править вики-текст]