Методы управления Миньонами
SaltStack поддерживает следующие методы управления Миньонами:
Удаленное выполнение
Удаленное выполнение реализовано посредством модуля выполнения SaltStack.
Модуль выполнения SaltStack — это набор связанных функций или методов, которые можно запускать на Миньонах по команде
salt от Мастера для выполнения определенных задач, таких как манипулирование файлами или перезапуск сервисов.
Salt-команды состоят из:
-
опций команд — дополнительных параметров (например, имя пользователя, пароль, путь к файлу конфигурации и другие настойки), уточняющих, как именно нужно выполнить задачу;
-
описания цели — Миньонов, на которых должна быть выполнена задача;
-
функции исполнения — кода на языке Python, который должен быть выполнен на Миньонах;
-
аргументов функции — значений, которые передаются в функцию при ее вызове.
Цели
Мастер задает цели, чтобы указать, какие Миньоны должны выполнить ту или иную команду.
Цель — это группа Миньонов на одном или нескольких Мастерах, к которым применяется Salt-команда.
| Мастером можно управлять так же как Миньоном, и он может быть целью, если для него запущен Миньон. |
Ниже приведен пример простой команды:
salt '*' test.ping
Где:
-
звездочка (
*) — цель, которая определяет всех Миньонов; -
test.ping— передает Миньонам команду запустить функциюtest.ping:-
testссылается на модуль исполнения; -
pingссылается на функциюping, содержащуюся в вышеуказанном модуле.
-
SaltStack позволяет указывать Миньонов в качестве цели по большому количеству критериев:
Пример 1:
salt 'larry1, larry2, curly1' test.ping
Пример 2:
salt 'larry*' test.ping
Пример 3:
salt '*1' test.ping
Помимо основных способов определения целей, существует способ определения конкретного Миньона по идентификатору или нескольких Миньонов по их совместно используемым признакам или характеристикам — параметрам Grains.
Параметры Grains
SaltStack использует систему параметров Grains для построения статических данных, полученных от Миньонов. Эти данные включают в себя информацию об операционной системе, CPU-архитектуре и др. Система параметров Grains используется SaltStack для доставки данных платформы многим компонентам и пользователям.
Параметры Grains могут быть также статическим набором, что позволяет легко присваивать значения Миньонам для группировки и управления.
Например, параметры Grains назначаются Миньонам, чтобы указать, какая роль или роли возможны для Миньона.
Параметры Grains могут быть установлены в конфигурационном файле Миньона или через функцию
grains.setval.
Пример команды:
salt -G 'os:Ubuntu' test.version
Где:
-
-G— определяет, что SaltStack будет выполнять команду на узлах, у которых есть заданный групповой тег; групповой тег определяется по значению переменнойgrains, которая также должна быть задана на каждом узле; -
os:Ubuntu— операционная система Ubuntu, которая определяется по значению переменнойos, которая должна быть задана на каждом узле; -
test.version— команда вывода версии Salt, которая должна быть выполнена на всех узлах, для которых определен тег-Gи задана переменнаяos:Ubuntu.
Использование параметров Grains (статистических данных-фактов, полученных от Миньонов) также возможно за счет использования шаблонов Jinja.
В примере ниже файл состояния /srv/salt/webserver_setup.sls устанавливает Apache и настраивает имя для пакета
в соответствии с операционной системой:
install_apache:
pkg.installed:
{% if grains['os'] == 'CentOS' %}
- name: httpd
{% else %}
- name: apache
{% endif %}
Управление конфигурацией
Состояния
Наряду с удаленным выполнением, SaltStack поддерживает метод управления Миньонами путем объявления состояния (Salt State), в котором он должен находиться.
Состояния определяются в файлах состояний с расширением .sls (Salt State).
С помощью состояний можно автоматизировать рекурсивные и предсказуемые задачи путем создания очереди заданий для выполнения в SaltStack без вмешательства пользователя. В файлы состояний также можно добавлять более сложную условную логику, используя шаблоны Jinja.
Формулы
Формулы — это наборы состояний, которые вместе настраивают компонент приложения или системы на Миньоне.
Формулы обычно организованы с помощью нескольких различных файлов с расширением .sls. Разделение состояний
формулы по разным файлам может упростить организацию работы. Объявления состояний могут включать и ссылаться
на объявления в других файлах.
Top-файл
В дополнение к ручному запуску состояний Миньонов, SaltStack также поддерживает их автоматический запуск. Для этого используется Top-файл — основной файл конфигурации. В Top-файле определяются соответствия между именами Миньонов и формулами, которые будут применены к этим Миньонам. В данном случае решается задача масштабирования, что позволяет избежать запуска каждого состояния по отдельности и вручную, когда в какой-либо среде существуют сотни файлов состояний, предназначенных для нескольких тысяч Миньонов.