Salt (програма)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Salt
Тип Керування конфігурацією та Інфраструктура як код
Розробник Thomas S Hatch
Стабільний випуск 2016.11.6 (10 травня, 2017; 6 років тому (2017-05-10)[1])
Версії 3005 (25 серпня 2022)[2] і 3006.1 (5 травня 2023)[3]
Операційна система Unix-like, OS X, Windows
Мова програмування Python
Ліцензія Apache 2.0
Репозиторій github.com/saltstack/salt
Вебсайт saltstack.com

Salt (іноді згадується як SaltStack Platform) відкрите програмне забезпечення для керування конфігурацією та віддаленого виконання написане на Python. Підтримує підхід "Infrastructure as Code" до розгортання і керування хмарами. Основними аналогами є Puppet, Chef, та Ansible.[4]


Історія[ред. | ред. код]

Salt з'явився через потребу швидкого збирання даних та виконання завдань в середовищах системного адміністрування. Автор Salt, Томас С. Гатч, раніше створив кілька внутрішніх продуктів компанії для вирішення цієї проблеми, але цього, та інших продуктів з відкритим кодом виявилося не достатньо.[5] Гатч вирішив використати бібліотеку обміну повідомленнями ØMQ і створив Salt використовуючи ØMQ для всіх рівнів мережі.

В липні 2014-го (в релізі "Helium") був додана надійна транспортна система RAET (Reliable Asynchronous Event Transport Protocol) на основі черги. Вона була створена в партнерстві з кількома великими підприємствами, щоб Salt мала альтернативу для ZeroMQ та можливість маштабування понад десятки тисяч серверів.[6]

Стани[ред. | ред. код]

Наприкінці травня 2011, були зроблені перші кроки до розробки централізованого керування конфігурацією в Salt.[7] Ця система керування конфігурацією базується на збереженні всіх даних конфігурації (або "стану") всередині просто зрозумілої структури даних. Цей функціонал увійшов в стабільний реліз в Salt 0.9.3 в листопаді 2011.[8]

Архітектура[ред. | ред. код]

Salt був спроектований бути модульним і легко розширюваним, щоб його можна було сформувати по різному для різних застосувань.[5] Архітектура Salt дозволяє створювати модулі Python які відповідають за певні аспекти наявних систем Salt.

Типи модулів[ред. | ред. код]

Модулі керують віддаленим виконанням та керуванням станами в Salt. Їх можна поділити на шість груп:

  • Модулі виконання (англ. Execution modules) - "робочі конячки" функціоналу Salt. Вони описують функції доступні для виконання на віддалених машинах. Ці модулі містять специфічну крос-платформну інформацію яка використовується Salt для забезпечення переносимості, і складають ключове API з системних функцій що використовуються в Salt.[9]
  • Модулі станів (англ. State modules) компоненти що утворюють бекед для системи керування конфігурацією Salt.

Див. також[ред. | ред. код]

Зноски[ред. | ред. код]

  1. Releases - saltstack/salt. Архів оригіналу за 6 листопада 2020. Процитовано 12 травня 2017 — через GitHub.
  2. Release 3005 — 2022.
  3. v3006.1
  4. Review: Puppet vs. Chef vs. Ansible vs. Salt. 21 листопада 2013. Архів оригіналу за 2 березня 2015. Процитовано 11 липня 2017.
  5. а б FLOSS Weekly 191: Salt. TwitTV. Архів оригіналу за 18 листопада 2011. Процитовано 19 березня 2011.
  6. Salt 2014.7.0 Release Notes - Codename Helium. Архів оригіналу за 4 липня 2017. Процитовано 11 липня 2017.
  7. red45.wordpress.com salt configuration management. red45.wordpress.com. Архів оригіналу за 1 червня 2011. Процитовано 29 травня 2011.
  8. Salt Release Notes - 0.9.3. saltstack. Архів оригіналу за 25 квітня 2012. Процитовано 6 листопада 2011.
  9. salt documentation - Writing Modules. saltstack. Архів оригіналу за 28 квітня 2013. Процитовано 3 листопада 2011.

Посилання[ред. | ред. код]