Начало работы с SaltStack

Опубликовано: 19 Апреля, 2023

Введение

Я, как и, казалось бы, все остальные, прыгаю на подножку автоматизации настолько, насколько это возможно. Существует множество вариантов от поставщиков, а также несколько решений с открытым исходным кодом. В этой статье я расскажу о том, что нужно для начала работы с SaltStack (или для краткости Salt). Некоторые считают, что Salt — это инструмент управления конфигурацией для операционной стороны ИТ, упрощающий часть сценариев/разработки, сохраняя при этом некоторую гибкость и предлагая потрясающую оркестровку.

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

Salt похож на Puppet Enterprise в том, что он запускает главный сервер с клиентами, которые в мире Salt называются ролями Master и Minion. Для моего мастера соли я решил использовать Ubuntu 14.04. Однако есть несколько вариантов. Однако все следующие шаги предназначены для Ubuntu.

Установить соль

Сначала я добавил репозиторий Salt и обновил пакеты программного обеспечения на виртуальной машине Linux:

В Ubuntu 14.04 эта команда была принята. Если эта команда вам недоступна, попробуйте установить python-software-properties.

Затем я установил и запустил основной пакет, набрав:

Затем я настроил соляного миньона, следуя тому же процессу, за исключением того, что вместо этого запустил команду «apt-get install salt-minion». У вас уже должен быть настроен DNS-сервер, когда вы делаете это, и укажите «salt» в качестве имени вашего мастера соли с IP-адресом. Вы можете изменить это, но по умолчанию миньон настроен так, чтобы найти мастера соли.

Измените файл конфигурации salt-minion

В системе миньонов вы можете получить доступ к конфигурационному файлу миньонов, набрав:

Это приведет вас к файлу, который выглядит как на следующем рисунке:

Изображение 15266
фигура 1

Как видите, я изменил строку с надписью «мастер», раскомментировав ее и указав IP-адрес. Вы также можете указать имя хоста, если DNS настроен правильно. Затем перезапустите службу соляных миньонов, набрав:

Принятие ключа

Чтобы миньон работал с мастером, мастеру нужно будет принять ключи миньона. Введя:

Это показывает вам следующее:

Изображение 15267
фигура 2

Вы можете увидеть принятые ключи, непринятые ключи (также рассматриваемые в ожидании) и, наконец, отклоненные ключи. Как вы можете видеть на картинке выше, у меня есть солевой миньон, который (несколько запутанно) называется DNS. Введя:

И затем, нажав Y, чтобы принять, я могу принять этот ключ. Затем, когда я снова набираю salt-key –L, я вижу, что теперь это принятый ключ, поэтому теперь Salt Master и Minion должны иметь возможность общаться.

Начало работы с командами

Теперь, когда мастер и миньон общаются, мы можем начать отправлять команды. Самым простым из них будет пинг-тест. Чтобы запустить этот тип:

* обозначает всех миньонов, но вы можете указать миньона, которого хотите пинговать. Если все пойдет хорошо, он вернет утверждение «True». Набрав слово «время» перед командой, мы можем увидеть, сколько времени ушло на пинг, как показано на рисунке ниже (опять же, имейте в виду, что мой солевой миньон называется DNS из-за двойного провала в моей тестовой среде).

Изображение 15268
Рисунок 3

Мы можем увидеть эту команду вместе со многими другими, набрав:

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

Зерновые

Также есть способы собрать информацию о миньонах у мастера, которые мудрено называются Зернами. Чтобы получить список элементов, информацию о которых мы можем получить, введите:

Затем, чтобы указать информацию, вы можете ввести что-то вроде:

Например, если я наберу:

Это укажет, что все мои миньоны Salt — Ubuntu. Я также мог бы конкретно назвать соляного миньона и назначить ему ОС, если бы они не были одинаковыми.

Изображение 15269
Рисунок 4

состояния

Как я сказал во вступительном абзаце, Salt Stack — это инструмент управления конфигурацией, который позволяет автоматизировать изменения в системах. Для этого управления конфигурацией используется концепция состояний. Он использует Salt State File, или SLS, для отслеживания состояний, в которых должны находиться системы, и использует своего рода метод многоуровневого хранения, чтобы сделать его несколько простым.

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

Столбы

Столпы, согласно пошаговому руководству, представляют собой «древовидные структуры данных, определенные в Salt Master и переданные миньонам. Они позволяют безопасно отправлять конфиденциальные целевые данные только соответствующему миньону». Таким образом, такие вещи, как пароли, могут передаваться с помощью столбцов. Столбы и зерна могут сбивать с толку. Зерна — это созданные данные и о миньонах, такие как информация об ОС или ЦП. Где столбы — это данные, созданные на мастере и безопасно переданные миньонам, такие как ключи и пароли.

Вывод

Как сказал Томас Хэтч, создатель SaltStack, лучший способ изучить Salt — это погрузиться в него. Это кажется довольно крутым решением, хотя полезно иметь некоторые углубленные знания о системах, написании сценариев или программировании. Хотя, наверное, он прав, чем больше вы с ним играете, тем легче становится. Не имея передовых знаний о Salt и очень небольшого опыта работы с Chef или Puppet, я смог очень легко настроить и запустить мастера и миньона и начал запускать команды. Я помню, что Puppet было немного сложнее запустить (отказ от ответственности: я не делал этого около года и использовал бесплатную версию). Мне нравится, что для запуска SaltStack можно использовать как Windows, так и Linux. Если вы ищете инструмент, который предоставит вам некоторую автоматизацию управления конфигурацией (особенно с открытым исходным кодом), то я думаю, что Salt стоит посмотреть.

Если у вас есть опыт работы с Salt и вам есть что добавить/исправить, не стесняйтесь оставлять свои комментарии в разделе ниже.