SaltStack
| SaltStack | |
|---|---|
| | |
| Тип | Управление конфигурацией, системное администрирование |
| Написана на | Python[1] |
| Операционная система | кроссплатформенное программное обеспечение |
| Последняя версия | |
| Репозиторий | github.com/saltstack/salt |
| Лицензия | лицензия Apache |
| Сайт | saltproject.io |
SaltStack — система управления конфигурациями и удалённого выполнения операций. Является программным обеспечением с открытым исходным кодом, написанным на Python. Проект начат в 2011 году Томасом Хатчем (Thomas Hatch)[4]. Поддерживает подход IaaS для развёртывания и управления облачными вычислениями[5].
Аналог Puppet, Chef и Ansible.
Архитектура
Двумя главными компонентами SaltStack являются Salt Master («мастер») и Salt Minion («ставленник», «приближённый», «миньон»). Мастер является центральной службой, к которой подключаются «ставленники» для получения конфигурации. Две основных идеи SaltStack: удалённое выполнение операций (remote execution) и управление конфигурациями. Удалённое выполнение функций Python является основой для построения повторяемой и управляемой конфигурации машин, с установленными на них «ставленниками»[6].
Мастер и «ставленники» общаются через промежуточное программное обеспечение, ориентированное на обработку сообщений: мастер запускает сообщения в очередь, из которой их получают «ставленники». Для обратной связи используется другая очередь. Первоначально для обмена сообщениями использовался ZeroMQ, но кластеры обслуживаемых серверов подчас имеют более десяти тысяч машин, поэтому на смену ZeroMQ был задуман основанный на UDP RAET (англ. Reliable Asynchronous Event Transport — «надёжный асинхронный протокол для транспорта событий»)[7].
В 2014 году в состав Salt был включён Salt Cloud, добавляющий в SaltStack уровень абстракции для работы с различными поставщиками облачных платформ[8].
Команды
Команда salt для запуска удалённого выполнения принимает следующие основные параметры[9]:
- опции командной строки,
- целевые «ставленники» в виде маски для сопоставления или регулярного выражения по именам «ставленников», где должна быть выполнена команда,
- функция из модуля в виде
модуль.функция, - параметры, передаваемые вызываемой функции.
Состояния
SaltStack использует модули состояния (States) для описания требуемых состояний хостов-«ставленников». Состояния системы записываются в виде файлов с расширением .sls в синтаксисе YAML, например:[10]
openssh-client: pkg.installed
Модули состояния отличаются от исполняемых модулей тем, что описывают требуемые состояния и их работа заключается в достижении описанного состояния. Исполняемые же модули выполняют заложенные в них действия каждый раз[10].
Описания состояний могут быть расширены использованием языка шаблонов Jinja2, а конфиденциальные данные конкретных «ставленников» могут быть защищены (от других «ставленников») подсистемой Pillar[11].
Примечания
- ↑ The salt Open Source Project on Open Hub: Languages Page — 2006.
- ↑ Release 3005 — 2022.
- ↑ v3006.1
- ↑ Learning SaltStack, 2015, Preface.
- ↑ Review: Puppet vs. Chef vs. Ansible vs. Salt (21 ноября 2013). Архивировано 2 марта 2015 года.
- ↑ Learning SaltStack, 2015, Introducing Salt.
- ↑ Hall, 2015, Chapter 7. Understanding the RAET Protocol.
- ↑ Learning SaltStack, 2015, Chapter 7. Using Salt Cloud to Manage Virtual Minions.
- ↑ Learning SaltStack, 2015, The structure of a remote execution command.
- ↑ 1 2 Learning SaltStack, 2015, Chapter 4. Defining the State of Your Infrastructure.
- ↑ 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.
Ссылки
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.